2.4.1.9 Drop-Down List Control

The dropdown list control enables the user to select a single value from a list of options that can be specified manually by the form template designer, or is populated from a data source. A DROPDOWN_LIST_BOX MUST have one of the symbols in the following table.

Symbol

Description

SIMPLE_DROPDOWN_LIST_BOX

A drop down list box is a control that allows the user to select an entry from a collection of values. The collection of values tends to be hidden until the user has them displayed. The collection of values is statically available in the XSL.

DROPDOWN_LIST_BOX_WITH_CONDITIONAL_FORMATTING

Similar to SIMPLE_DROPDOWN_LIST_BOX, but allows conditional formatting (text formatting and disabling).

DROPDOWN_LIST_BOX_WTIH_VALUES_FROM_DATA_SOURCE

Similar to SIMPLE_DROPDOWN_LIST_BOX with the exception that the values for the collection are drawn from another location within the data source of the form.

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_CONDITIONAL_FORMATTING

Similar to DROPDOWN_LIST_BOX_WITH_VALUES_FROM_EXTERNAL_DATA_SOURCE and DROPDOWN_LIST_BOX_WTIH_VALUES_FROM_DATA_SOURCE_AND_CONDITIONAL_FORMATTING.

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_UNIQUE_DISPLAY_NAMES

Similar to DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE with the difference that each value from the collection of values is unique.

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_UNIQUE_DISPLAY_NAMES_AND_CONDITIONAL_FORMATTING

Similar to DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_UNIQUE_DISPLAY_NAMES and DROPDOWN_LIST_BOX_WITH_CONDITIONAL_FORMATTING.

SIMPLE_DROPDOWN_LIST_BOX:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID" (style="DROPDOWN_LIST_BOX_STYLES")?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     ((<option (value="")?>
         <xsl:if test="LEAF_XPATH1=&quot;&quot;">
             <xsl:attribute name="selected">selected</xsl:attribute> 
         </xsl:if>
         ANY_STRING2
     </option>) |
     (<option value="LEAF_VALUE1">
         <xsl:if test="LEAF_XPATH1=LEAF_VALUE1">
             <xsl:attribute name="selected">selected</xsl:attribute> 
         </xsl:if>
         ANY_STRINGX
     </option>))+
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_WITH_CONDITIONAL_FORMATTING:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? (style="DROPDOWN_LIST_BOX_STYLES")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID">
     CHECK_FOR_GETDOM_BEGIN1
     (<xsl:attribute name="style">
         DROPDOWN_LIST_BOX_STYLES
         <xsl:choose>
             (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING)*
         </xsl:choose>
     </xsl:attribute>)?
     (<xsl:choose>
         (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING | DROPDOWN_LIST_BOX_CONDITIONAL_DISABLING)+
     </xsl:choose>)?
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     ((<option (value="")?>
         <xsl:if test="LEAF_XPATH1=&quot;&quot;">
             <xsl:attribute name="selected">selected</xsl:attribute> 
         </xsl:if>
         ANY_STRING2
     </option>) |
     (<option value="LEAF_VALUE1">
         <xsl:if test="LEAF_XPATH1=LEAF_VALUE1">
             <xsl:attribute name="selected">selected</xsl:attribute> 
         </xsl:if>
         ANY_STRINGX
     </option>))+
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" value="ANY_STRING2" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID" (style="DROPDOWN_LIST_BOX_STYLES")?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     <xsl:choose>
         <xsl:when test="function-available('xdXDocument:GetDOM')">
             <option />
             <xsl:variable name="val" select="LEAF_XPATH1" />
             <xsl:if test="not(REPEATING_LEAF_XPATH1[LEAF_XPATH=$val] or $val='')">
                 <option selected="selected">
                     <xsl:attribute name="value">
                         <xsl:value-of select="$val" />
                     </xsl:attribute>
                     <xsl:value-of select="$val" />
                 </option>
             </xsl:if>
             <xsl:for-each select="REPEATING_LEAF_XPATH1">
                 <option>
                     <xsl:attribute name="value">
                         <xsl:value-of select="RELATIVE_LEAF_XPATH1" /> 
                     </xsl:attribute>
                     <xsl:if test="$val=RELATIVE_LEAF_XPATH1">
                         <xsl:attribute name="selected">selected</xsl:attribute> 
                     </xsl:if>
                     <xsl:value-of select="RELATIVE_LEAF_XPATH2"/>
                 </option>
             </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
             <option>
                 <xsl:value-of select="LEAF_XPATH1" />
             </option>
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_CONDITIONAL_FORMATTING:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? (style="DROPDOWN_LIST_BOX_STYLES")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" value="ANY_STRING2" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID">
     CHECK_FOR_GETDOM_BEGIN1
     (<xsl:attribute name="style">
         DROPDOWN_LIST_BOX_STYLES
         <xsl:choose>
             (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING)*
         </xsl:choose>
     </xsl:attribute>)?
     (<xsl:choose>
                 (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING | DROPDOWN_LIST_BOX_CONDITIONAL_DISABLING)+
     </xsl:choose>)?
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     <xsl:choose>
         <xsl:when test="function-available('xdXDocument:GetDOM')">
             <option /> 
             <xsl:variable name="val" select="LEAF_XPATH1" />
             <xsl:if test="not(REPEATING_LEAF_XPATH1[LEAF_XPATH=$val] or $val='')">
                 <option selected="selected">
                     <xsl:attribute name="value">
                         <xsl:value-of select="$val" />
                     </xsl:attribute>
                     <xsl:value-of select="$val" />
                 </option>
             </xsl:if>
             <xsl:for-each select="REPEATING_LEAF_XPATH1">
                 <option>
                     <xsl:attribute name="value">
                         <xsl:value-of select="RELATIVE_LEAF_XPATH1" /> 
                     </xsl:attribute>
                     <xsl:if test="$val=RELATIVE_LEAF_XPATH1">
                         <xsl:attribute name="selected">selected</xsl:attribute> 
                     </xsl:if>
                     <xsl:value-of select="RELATIVE_LEAF_XPATH2"/>
                 </option>
             </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
             <option>
                 <xsl:value-of select="LEAF_XPATH1" />
             </option>
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_UNIQUE_DISPLAY_NAMES:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" value="ANY_STRING2" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID" (style="DROPDOWN_LIST_BOX_STYLES")?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     <xsl:choose>
         <xsl:when test="function-available('xdXDocument:GetDOM')">
             <option /> 
             <xsl:variable name="val" select="LEAF_XPATH1" />
             <xsl:if test="not(REPEATING_LEAF_XPATH1[LEAF_XPATH=$val] or $val='')">
                 <option selected="selected">
                     <xsl:attribute name="value">
                         <xsl:value-of select="$val" />
                     </xsl:attribute>
                     <xsl:value-of select="$val" />
                 </option>
             </xsl:if>
             <xsl:variable name="items">
                 <xsl:copy-of select="REPEATING_LEAF_XPATH1" />
             </xsl:variable>
             <xsl:variable name="uniqueItems" select="msxsl:node-set($items)/*[not(LEAF_XPATH = preceding::LEAF_XPATH2)]" />
             <xsl:for-each select="$uniqueItems">
                 <option>
                     <xsl:attribute name="value">
                         <xsl:value-of select="RELATIVE_LEAF_XPATH1" /> 
                     </xsl:attribute>
                     <xsl:if test="$val=RELATIVE_LEAF_XPATH1">
                         <xsl:attribute name="selected">selected</xsl:attribute> 
                     </xsl:if>
                     <xsl:value-of select="RELATIVE_LEAF_XPATH2"/>
                 </option>
             </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
             <option>
                 <xsl:value-of select="LEAF_XPATH1" />
             </option>
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_WITH_VALUES_FROM_DATA_SOURCE_AND_UNIQUE_DISPLAY_NAMES_AND_CONDITIONAL_FORMATTING:

 <select class="xdComboBox xdBehavior_Select" title="ANY_STRING1" (accessKey="SINGLE_CHARACTER")? (style="DROPDOWN_LIST_BOX_STYLES")? size="FONT_SIZE" xd:binding="LEAF_XPATH1" xd:boundProp="value" value="ANY_STRING2" xd:xctname="dropdown" (xd:postbackModel="POSTBACKMODEL ")? (tabIndex="TAB_INDEX")? xd:CtrlId="CONTROL_ID">
     CHECK_FOR_GETDOM_BEGIN1
     (<xsl:attribute name="style">
         DROPDOWN_LIST_BOX_STYLES
         <xsl:choose>
             (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING)*
         </xsl:choose>
     </xsl:attribute>)?
     (<xsl:choose>
         (DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING | DROPDOWN_LIST_BOX_CONDITIONAL_DISABLING)+
     </xsl:choose>)?
     <xsl:attribute name="value">
         <xsl:value-of select="LEAF_XPATH1" />
     </xsl:attribute>
     <xsl:choose>
         <xsl:when test="function-available('xdXDocument:GetDOM')">
             <option /> 
             <xsl:variable name="val" select="LEAF_XPATH1" />
             <xsl:if test="not(REPEATING_LEAF_XPATH1[LEAF_XPATH=$val] or $val='')">
                 <option selected="selected">
                     <xsl:attribute name="value">
                         <xsl:value-of select="$val" />
                     </xsl:attribute>
                     <xsl:value-of select="$val" />
                 </option>
             </xsl:if>
             <xsl:variable name="items">
                 <xsl:copy-of select="REPEATING_LEAF_XPATH1" />
             </xsl:variable>
             <xsl:variable name="uniqueItems" select="msxsl:node-set($items)/*[not(LEAF_XPATH = preceding::LEAF_XPATH2)]" />
             <xsl:for-each select="$uniqueItems">
                 <option>
                     <xsl:attribute name="value">
                         <xsl:value-of select="RELATIVE_LEAF_XPATH1" /> 
                     </xsl:attribute>
                     <xsl:if test="$val=RELATIVE_LEAF_XPATH1">
                         <xsl:attribute name="selected">selected</xsl:attribute> 
                     </xsl:if>
                     <xsl:value-of select="RELATIVE_LEAF_XPATH2"/>
                 </option>
             </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
             <option>
                 <xsl:value-of select="LEAF_XPATH1" />
             </option>
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </select>

DROPDOWN_LIST_BOX_CONDITIONAL_DISABLING:

 <xsl:when test="BOOLEAN_XPATH_EXPRESSIONY">
     <xsl:attribute name="disabled">true</xsl:attribute>
 </xsl:when>

DROPDOWN_LIST_BOX_CONDITIONAL_FORMATTING:

 <xsl:when test="BOOLEAN_XPATH_EXPRESSIONX">(LEAF_CONTROL_CONDITIONAL_FORMATTING_CAPTION)?</xsl:when>

DROPDOWN_LIST_BOX_STYLES: Semicolon-delimited list of (STYLE_WIDTH?, STYLE_FONT?, STYLE_MARGIN?, STYLE_VERTICAL_ALIGN?, STYLE_TEXT_DECORATION?, STYLE_COLOR?, STYLE_BACKGROUND_COLOR?, STYLE_DIRECTION?).

Control-specific attributes used by the dropdown list control are as follows:

The xdXDocument:GetDOM XSL function extension, as specified in section 2.4.3.9.2, is used by the dropdown list control.