Difference between revisions of "Show/Hide Header"

From SmartWiki
Jump to: navigation, search
Line 1: Line 1:
==Overview==
 
  
This is a new feature designed to support more dynamic pages by providing for control of the visibility of [[Custom Fields|custom fields]] through values that are entered elsewhere on the page.  
+
 
 +
The visibility of [[Custom Fields|custom fields]] can be controlled through values that are entered elsewhere on the page.  
  
 
The concept is that one [[Custom Fields|custom field]] - the "control field" - is used to control the display of a set of [[Custom Fields|custom fields]] based on a value entered or selected in the control field.
 
The concept is that one [[Custom Fields|custom field]] - the "control field" - is used to control the display of a set of [[Custom Fields|custom fields]] based on a value entered or selected in the control field.
  
The control field can be any type of [[Custom Fields|custom field]] that can contain a value such as a text box ([[Custom Field Type: Text – Single Line|single]] or [[Custom Field Type: Text – Multiple Lines|multiple]] line), [[Custom Field Type: Select One – Combo Box|Combo box - select one]], [[Custom Field Type: Select Many – Check Boxes|Check boxes - select many]], [[Custom Field Type: Special – Calculated Value|Calculated field]] or Lookup type field.
+
The control field can be any [[Custom Field]] that contains a value:
 +
* [[Custom Field Type: Text – Single Line]  
 +
* [[Custom Field Type: Text – Multiple Lines]]
 +
* [[Custom Field Type: Select One – Combo Box]]
 +
* [[Custom Field Type: Select Many – Check Boxes]]
 +
* [[Custom Field Type: Special – Calculated Value]]
 +
* [[Custom Field Type: Lookup – Entity and People]]
 +
* [[Custom Field Type: Lookup – External Entity]]
 +
* [[Custom Field Type: Lookup – External People]]
  
The only field types that cannot be used are fields such as [[Custom Field Type: Special – Browser Script|browser script]], [[Custom Field Type: Display Only – Image|Image]] field, etc.
 
  
The controlled fields must all be placed under a '''Title Bar''' type field.
 
  
==Example==
+
==Syntax==
 +
Place the following code in the '''HTML Tag''' box of the '''Control''' field:
  
Place the following code in the '''HTML Tag''' box of the '''Control''' field:
+
:<font size="3">onchange="_showhideheader(xxxxxx,this.value=='Yes')"</font>
  
<pre>
+
'''Where''':
onchange="_showhideheader(xxxxxx,this.value=='Yes')"
+
* ''xxxxxx'' is the field ID of the [[Custom Field Type: Title Bar – Multiple Columns|Title Bar]] field that you wish to control.
</pre>
+
* ''Yes'' is the value in the control field that you wish to use to trigger the display of '''Title''' '''Bar''' and the other '''Controlled''' fields in the block.
  
Where '''xxxxxx''' is the field ID of the '''Title Bar''' field that you wish to control.
 
  
Where '''Yes''' is the value in the control field that you wish to use to trigger the display of '''Title''' '''Bar''' and the other '''Controlled''' fields in the block.
+
'''Examples:'''
 +
* Display the controlled fields when the control field is '''not equal''' to Yes:
 +
onchange="_showhideheader(123456,this.value!='Yes')"
  
'''More complex syntax can also be used:'''
 
  
<pre>
+
* '''Multiple Conditions''' the control field is either Yes or Maybe:
 +
onchange="_showhideheader(123456,(this.value=='Yes' || this.value=='Maybe'))"
  
onchange="_showhideheader(xxxxxx,this.value!='Yes')"
 
  
Display the controlled fields when the control field is not equal to Yes.
+
* Display the controlled fields when the control field is '''empty''':
 +
onchange="_showhideheader(123456,this.value==''")
  
onchange="_showhideheader(xxxxxx,(this.value=='Yes' || this.value=='Maybe'))"
 
  
Display the controlled fields when the control field is either Yes or Maybe.
+
*Display the controlled fields when the control field is '''numerical''' (greater than 6):
 +
onchange="_showhideheader(123456, parseInt(this.value ) >6)"
  
onchange="_showhideheader(xxxxxx,this.value==''")
 
  
Display the controlled fields when the control field is empty.
+
==Multiple Headers==
 +
'''Multiple headers''' can be hidden/shown simultaneously:
 +
:<font size="3">onchange="_showhideheader(xxxxxx,this.value='A') ;_showhideheader(yyyyyyy,this.value='B') "  </font>
  
onchange="_showhideheader(xxxxxx, parseInt(this.value ) >6)"
+
This will display the controlled fields associated with '''Title Bar''' type field ID xxxxxx when the control field has value '''A''' and display controlled fields associated with '''Title Bar''' type field ID yyyyyyy when the control field has value '''B'''.
  
Display the controlled fields when the control field is greater than 6. </pre>
 
  
If there are a set of fields that are required to be displayed and others to be kept hidden based on values selected from combo box, following syntax may be used:
 
<pre>
 
onchange="_showhideheader(xxxxxx,this.value='A') ;_showhideheader(yyyyyyy,this.value='B') " 
 
  
Display the controlled fields associated with '''Title Bar''' type field ID xxxxxx  when the control field is A and
+
==Check Boxes==
display controlled fields associated with '''Title Bar''' type field ID yyyyyyy when the control field is B
+
When the '''Control''' field is a [[Custom Field Type: Select Many – Check Boxes|Select Many Check Box]], you will need to use the '''onclick''' syntax.
</pre>
 
  
 +
:<font size="3">onclick="_showhideheadercheckbox(xxxxxxx,this,'Yes;Cancel')"</font>
  
'''**'''When the '''Control''' field is a '''Select Many Check Box''', you will need to use the onclick syntax. Please see the [[Show/Hide Fields Using a Check Box]] article.
+
* Use '''onclick''' instead of '''onchange'''
 +
* Use'''this''' instead of '''this.value'''
 +
* ''''Yes;Cancel'''' - values delimited by semi-colon
  
The difference between this feature and [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control]] field is that:
 
  
Unlike the [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic]] [[Custom Field|custom field]], there are no fields "nested" within the control field and the set of fields that you wish to control can be located anywhere on the page.
+
==Notes==
 +
The difference between this feature and [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control Field]] is that:
 +
* The set of fields that you wish to control can be located anywhere on the page. With [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control Fields]] the fields must be below the control field.
 +
* Unlike the [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control Field]], there are no fields "nested" within the control field.
 +
* The fields hidden by one control can be used to as control fields themselves. Using nested [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control Fields]] (dynamic controls within dynamic controls) is not recommended, and you cannot report below the first level of nested fields.
  
Using nested [[Custom Field Type: Dynamic Data – Dynamic Control Field|Dynamic Control]] fields (dynamic controls within dynamic controls) you cannot report below the first level of nested fields.
 
  
 
==See Also==
 
==See Also==

Revision as of 10:39, 25 September 2009


The visibility of custom fields can be controlled through values that are entered elsewhere on the page.

The concept is that one custom field - the "control field" - is used to control the display of a set of custom fields based on a value entered or selected in the control field.

The control field can be any Custom Field that contains a value:


Syntax

Place the following code in the HTML Tag box of the Control field:

onchange="_showhideheader(xxxxxx,this.value=='Yes')"

Where:

  • xxxxxx is the field ID of the Title Bar field that you wish to control.
  • Yes is the value in the control field that you wish to use to trigger the display of Title Bar and the other Controlled fields in the block.


Examples:

  • Display the controlled fields when the control field is not equal to Yes:
onchange="_showhideheader(123456,this.value!='Yes')"


  • Multiple Conditions the control field is either Yes or Maybe:
onchange="_showhideheader(123456,(this.value=='Yes' || this.value=='Maybe'))"


  • Display the controlled fields when the control field is empty:
onchange="_showhideheader(123456,this.value==")


  • Display the controlled fields when the control field is numerical (greater than 6):
onchange="_showhideheader(123456, parseInt(this.value ) >6)"


Multiple Headers

Multiple headers can be hidden/shown simultaneously:

onchange="_showhideheader(xxxxxx,this.value='A') ;_showhideheader(yyyyyyy,this.value='B') "

This will display the controlled fields associated with Title Bar type field ID xxxxxx when the control field has value A and display controlled fields associated with Title Bar type field ID yyyyyyy when the control field has value B.


Check Boxes

When the Control field is a Select Many Check Box, you will need to use the onclick syntax.

onclick="_showhideheadercheckbox(xxxxxxx,this,'Yes;Cancel')"
  • Use onclick instead of onchange
  • Usethis instead of this.value
  • 'Yes;Cancel' - values delimited by semi-colon


Notes

The difference between this feature and Dynamic Control Field is that:

  • The set of fields that you wish to control can be located anywhere on the page. With Dynamic Control Fields the fields must be below the control field.
  • Unlike the Dynamic Control Field, there are no fields "nested" within the control field.
  • The fields hidden by one control can be used to as control fields themselves. Using nested Dynamic Control Fields (dynamic controls within dynamic controls) is not recommended, and you cannot report below the first level of nested fields.


See Also

Visibility of Custom Fields can also be controlled using: