Skip to main content

Hi,

I have a requirement, user should be able to interact with submitted form. This is how my form works, user opens a new form, fills it and submit it. Later user will be redirected to a SharePoint page, where can they see the 'List View' with few important fields, a workflow is attached to this in the backend.

Business wants a hyperlink field next to each item on SP page, on clicking it, takes the user to their submitted form, all fields should be greyed out, only one field should be editable to collect input from users.

Eg: Extra Hours : "User fills", once form is submitted after entering this, 'List Column : Extra Hours' need to updated with this.

This is what I tried so far, Created a panel and added a " Label - Extra hours, Control - Single line of text " to it, attached a rule to the panel, so that it will visible only in 'Display Mode'.

But the output shows the panel, without 'Text control', like this,

      

I am hoping, this is because of 'Display Mode' behavior. Is there a way, to overcome this ?

I can follow same process in 'Edit Mode', but in this mode few dropdowns which are populated using code are getting reset, making user to select again. Is there a way, to avoid this reset behavior of custom dropdowns and making all fields grey out, leaving one field for user to input data ?

If this is complicated in both scenarios, can I create a separate form which can accessed only to input 'Extra Hours', but user should be able to view his previous form with all fields, this is similar to custom task form in workflow.

Can someone please help ?

This is what I tried so far, Created a panel and added a " Label - Extra hours, Control - Single line of text " to it, attached a rule to the panel, so that it will visible only in 'Display Mode'.

text control is displayed but since it is view mode and there is no value in connected list field you see no content.

but you can see text control's border is displayed

I am hoping, this is because of 'Display Mode' behavior. Is there a way, to overcome this ?

display mode is designed just see data, if you want to change anything you have to choose edit list item option, ie. open form in edit mode.

if you want to allow to edit just one field you have to create rules to disable/hide all the other fields.

I can follow same process in 'Edit I can follow same process in 'Edit Mode', but in this mode few dropdowns which are populated using code are getting reset, making user to select again.

1. you have to connect dropdowns to list fields in order they keep data

2. you have populate dropdowns from code in a correct way so that they get saved to list fields

3. you have to ensure your code do not overwrites data read in from list fields

not sure which of these you break.


Hi Nagarjuna,

You can create a workflow and edit the start form to have this ability to edit the field you want, enable the workflow to show in the menu of the item. The user has to start the workflow from the item menu to see the form and he can submit form.


Hi Marian Hatala‌,

Thanks for your detailed response.

I have 4 custom drop downs, out of them 3 are cascading drop downs and 2 of them are in repeating section, so I was unable to connect repeating section drop downs to list fields (my apologies for not mentioning this point).

As SharePoint won't allow values to save from custom drop downs to list, we need to populate those selected values to single line text controls and link them to list fields to avoid 'view-state' conflict.

This is what I did from your 3 point suggestions,

1. Changed my approach to 'Edit' mode, added rest of controls on form to 'Panel', and created rules to panels, such that, controls in panel will be disabled in edit mode. 

2. Along with that, utilized query string 'ID' value and prevented populating 'Text-controls' again with drop down values on 'Edit mode - Save click', this updated my new value properly.

Now everything is working as expected.


Hi ‌,

I would like to implement this approach, but users are not allowed / trained to start the workflow manually.


Reply