Hi Experts,
I have a K2 Smart Form on which I have 36 views of response type singleCheckBox and lables. My requirnment is when user checked any one of the checkbox all other checkbox and Lable should be hided, I know we can write the hide/show on the onChange event of any checkbox but it would be very lengthy, is there any other smart way to handle this requirnment ?
Thanks
Shubh
Solved! Go to Solution.
Good day,
I suggest that at a section of the form you put table on which you will add all the views that you want to hide on check box change.
So basically you'll have one rule to hide table on checkbox change this will also hide the views that you have placed on the table.
Hope this helps.
Kind regards
Themba
Hi Shubh
My recommendation would be to make use of the table control, an unbound rule and the on change events in the checkboxes.
Using these items you could construct one unbound rule that can be called on each of the checkbox buttons, this will eliminate having to create the same conditions on each checkbox over and over again. The table control could help in making the controls less when it comes to hiding them during the rule construction.
Let’s say you have 2 views on a single form, the form also has 2 labels and 2 checkboxes - Now we want everything to be hidden if the any of the 2 checkboxes are changed to a true value, however the changed checkbox should not be hidden, if the checkbox is changed to a false value then everything else should be turned back to visible again. To get this behaviour I would recommend constructing the following.
*Please note that the below steps are based on the above mentioned scenario.
Steps:
1. If at all possible add all the other control that are on the form into a table control – this would obviously depend on what your design looks like.
See this link for more information on the table control - https://help.k2.com/onlinehelp/K2smartforms/UserGuide/4.7/default.htm#SF_-_ViewControls_-_Table.html
2. Create an unbound rule by not adding any events but instead just change the rules name, then jump straight into constructing your rule to look like the below:
Advanced condition - If Checkbox 1 = True
Hide View 1
Hide View 2
Hide Label 1 - Instead of hiding the labels individually you can hide the table control containing them instead (Hide Table 1)
Hide Label 2 - Instead of hiding the labels individually you can hide the table control containing them instead (Hide Table 1)
Hide Checkbox 2
Else
Show View 1
Show View 2
Show Label 1 - Instead of showing the labels individually you can hide the table control containing them instead (Hide Table 1)
Show Label 2 - Instead of showing the labels individually you can hide the table control containing them instead (Hide Table 1)
Show Checkbox 2
Advanced condition - If Checkbox 2 = True
Hide View 1
Hide View 2
Hide Label 1 - Instead of hiding the labels individually you can hide the table control containing them instead (Hide Table 1)
Hide Label 2 - Instead of hiding the labels individually you can hide the table control containing them instead (Hide Table 1)
Hide Checkbox 1
Else
Show View 1
Show View 2
Show Label 1 - Instead of showing the labels individually you can hide the table control containing them instead (Hide Table 1)
Show Label 2 - Instead of showing the labels individually you can hide the table control containing them instead (Hide Table 1)
Show Checkbox 1
3. Call the unbound rule on all the relevant controls, in this case it would be the two checkbox controls.
When Checkbox 1 is changed
Then execute the Visibility rule
When Checkbox 2 is changed
Then execute the Visibility rule
4. Run your form – now when checkbox 1 is checked all other controls and views will be hidden, when it is unchecked all the controls will be turned back to visible. The same will happen if the second checkbox is checked or unchecked as the rule has catered for that.
Things to note:
Additional References:
http://community.k2.com/t5/General/The-benefit-of-using-unbound-rules-with-multiple-states/m-p/99283
Should you feel that this post is of use and or an accurate solution to the raised question, I kindly encourage you to mark it as such using the 'Mark as Solution', 'Kudo' andor ‘Me Too’ options.
Kind Regards
Raymond