2.4.1.21.9 Multiple-Selection List Box Control
The multiple-selection list box control enables the user to select multiple values from a list of options that can be specified manually by the form template designer, or is populated from a data source. The user is also able to enter custom values in the control. The following table describes the symbols for a multiple-selection list box control.
Symbol |
Description |
---|---|
MSLB_WITH_STATIC_CHOICES |
A multiple-selection list box is a control that allows the user to select multiple values from a list of options. The list of options is stored in the XSL. |
MSLB_WITH_STATIC_CHOICES_AND_CUSTOM_ITEMS |
Similar to MSLB_WITH_STATIC_CHOICES, but in addition to being able to select options, the user is able to enter custom values. |
MSLB_WITH_STATIC_CHOICES_AND_CUSTOM_ITEMS_AND_DATA_FORMAT |
Similar to MSLB_WITH_STATIC_CHOICES_AND_CUSTOM_ITEMS, but with data formatting. |
MSLB_WITH_DYNAMIC_CHOICES |
Similar to MSLB_WITH_STATIC_CHOICES, with the exception that the list of options is populated from another location within the form’s data source (2). |
MSLB_WITH_DYNAMIC_CHOICES_AND_CUSTOM_ITEMS |
Similar to MSLB_WITH_DYNAMIC_CHOICES, but in addition to being able to select options, the user is able to enter custom values. |
MSLB_WITH_DYNAMIC_CHOICES_AND_CUSTOM_ITEMS_DATA_FORMAT |
Similar to MSLB_WITH_DYNAMIC_CHOICES_AND_CUSTOM_ITEMS, but with data formatting. |
In any production defined in this section, any use of a REPEATING_LEAF_XPATH with the same subscript MUST have an identical yield.
In any production defined in this section, any use of a MSLB_STYLES with the same subscript MUST have an identical yield.
In any production defined in this section, any use of a TAB_INDEX with the same subscript MUST have an identical yield.
For each instance of ANY_STRINGX in MSLB_FOR_EACH_SELECT there MUST be an identical instance of ANY_STRINGX in MSLB_STATIC_OPTIONS.
MSLB_FOR_EACH_SELECT:
-
REPEATING_LEAF_XPATH1[(.!="") | ("and" separated list of (.!="ANY_STRINGX")+)]
MSLB_WITH_STATIC_CHOICES:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" (xd:postbackModel="POSTBACKMODEL")? xd:CtrlId="CONTROL_ID" xd:xctname="multiselectlistbox" (xd:boundProp="value")? tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1" (DISABLED="true")?> MSLB_CONDITIONAL_FORMATTING1 MSLB_CONDITIONAL_DISABLING1 MSLB_STATIC_OPTIONS <xsl:for-each select="MSLB_FOR_EACH_SELECT1"> <xsl:if test="normalize-space(.)!=''"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <xsl:value-of select="."/> </span> </xsl:if> </xsl:for-each> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_WITH_STATIC_CHOICES_AND_CUSTOM_ITEMS:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" (xd:postbackModel="POSTBACKMODEL")? xd:CtrlId="CONTROL_ID" xd:xctname="multiselectlistbox" (xd:boundProp="value")? tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1"> MSLB_CONDITIONAL_FORMATTING MSLB_CONDITIONAL_DISABLING1 MSLB_STATIC_OPTIONS <xsl:for-each select="MSLB_FOR_EACH_SELECT1"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <span hideFocus="1" contentEditable="true" xd:binding="." xd:xctname="PlainText" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" (xd:inputScopeId="INPUT_SCOPE_ID") ? (xd:allowNonMatching="yes")? class="xdMultiSelectFillIn"> <xsl:attribute name="title"> <xsl:value-of select="." /> </xsl:attribute> MSLB_CONDITIONAL_DISABLING2 <xsl:value-of select="." /> </span> </span> </xsl:for-each> <xsl:if test="not(MSLB_FOR_EACH_SELECT1[1])"> <span class="xdMultiSelectListItem"> MSLB_CUSTOM_VALUE <span title="" hideFocus="1" xd:xctname="PlainText" xd:binding="REPEATING_LEAF_XPATH1[.=''][1]" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn"> </span> </span> </xsl:if> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_WITH_STATIC_CHOICES_AND_CUSTOM_ITEMS_AND_DATA_FORMAT:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" (xd:postbackModel="POSTBACKMODEL")? xd:CtrlId="CONTROL_ID" xd:xctname="multiselectlistbox" tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1" xd:boundProp="xd:num" xd:datafmt="DATA_FMT_CTRL_MSLB1"> MSLB_CONDITIONAL_FORMATTING MSLB_CONDITIONAL_DISABLING1 MSLB_STATIC_OPTIONS <xsl:for-each select="MSLB_FOR_EACH_SELECT1"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <span hideFocus="1" contentEditable="true" xd:binding="." xd:xctname="PlainText" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn xdBehavior_Formatting" (xd:inputScopeId="INPUT_SCOPE_ID")? (xd:allowNonMatching="yes")? xd:boundProp="xd:num" xd:datafmt="DATA_FMT_CTRL_MSLB1"> <xsl:attribute name="xd:num"> <xsl:value-of select="." /> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="." /> </xsl:attribute> MSLB_CONDITIONAL_DISABLING2 MSLB_DATA_FORMATTING1 </span> </span> </xsl:for-each> <xsl:if test="not(MSLB_FOR_EACH_SELECT1[1])"> <span class="xdMultiSelectListItem"> MSLB_CUSTOM_VALUE <span title="" hideFocus="1" xd:xctname="PlainText" xd:binding="REPEATING_LEAF_XPATH1[.=''][1]" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn" > </span> </span> </xsl:if> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_WITH_DYNAMIC_OPTIONS:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" xd:xctname="multiselectlistbox" xd:CtrlId="CONTROL_ID" xd:boundProp="value" (xd:postbackModel="POSTBACKMODEL")? tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1"> MSLB_CONDITIONAL_FORMATTING MSLB_CONDITIONAL_DISABLING <xsl:variable name="values" select="REPEATING_LEAF_XPATH1" /> (MSLB_DYNAMIC_OPTIONS_GROUP | MSLB_DYNAMIC_OPTIONS_REPEATING_FIELD) <xsl:for-each select="REPEATING_LEAF_XPATH1[not(.=$options)] | ([PREDICATE_XPATH1])?"> <xsl:if test="normalize-space(.)!=''"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <xsl:value-of select="." /> </span> </xsl:if> </xsl:for-each> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_WITH_DYNAMIC_OPTIONS_AND_CUSTOM_OPTIONS:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" xd:xctname="multiselectlistbox" xd:CtrlId="CONTROL_ID" xd:boundProp="value" (xd:postbackModel="POSTBACKMODEL")? tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1"> MSLB_CONDITIONAL_FORMATTING MSLB_CONDITIONAL_DISABLING1 <xsl:variable name="values" select="REPEATING_LEAF_XPATH1" /> (MSLB_DYNAMIC_OPTIONS_GROUP | MSLB_DYNAMIC_OPTIONS_REPEATING_FIELD) <xsl:for-each select="REPEATING_LEAF_XPATH1[not(.=$options)] |([PREDICATE_XPATH1])?"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <span hideFocus="1" contentEditable="true" xd:binding="." xd:xctname="PlainText" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn" (xd:inputScopeId="INPUT_SCOPE_ID")? (xd:allowNonMatching="yes")?> <xsl:attribute name="title"> <xsl:value-of select="." /> </xsl:attribute> MSLB_CONDITIONAL_DISABLING1 <xsl:value-of select="." /> </span> </span> </xsl:for-each> <xsl:if test="not(REPEATING_LEAF_XPATH1[not(.=$options)])"> <span class="xdMultiSelectListItem"> MSLB_CUSTOM_VALUE <span title="" hideFocus="1" xd:xctname="PlainText" xd:binding="REPEATING_LEAF_XPATH1[.=''][1]" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn" > </span> </span> </xsl:if> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_WITH_DYNAMIC_OPTIONS_AND_CUSTOM_OPTIONS_AND_DATA_FORMATTING:
-
<xsl:choose> <xsl:when test="function-available('ipApp:GetMajorVersion') and ipApp:GetMajorVersion() >= 12"> <span style="MSLB_STYLES1" class="xdMultiSelectList" title="ANY_STRING1" xd:xctname="multiselectlistbox" xd:CtrlId="CONTROL_ID" xd:boundProp="value" (xd:postbackModel="POSTBACKMODEL")? tabIndex="-1" xd:ref="REPEATING_LEAF_XPATH1" xd:datafmt="DATA_FMT_CTRL_MSLB1"> MSLB_CONDITIONAL_FORMATTING MSLB_CONDITIONAL_DISABLING1 <xsl:variable name="values" select="REPEATING_LEAF_XPATH1" /> (MSLB_DYNAMIC_OPTIONS_GROUP | MSLB_DYNAMIC_OPTIONS_REPEATING_FIELD) <xsl:for-each select="REPEATING_LEAF_XPATH1[not(.=$options)] |([PREDICATE_XPATH1])?"> <span class="xdMultiSelectListItem"> MSLB_CHECKBOX <span hideFocus="1" contentEditable="true" xd:binding="." xd:xctname="PlainText" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn xdBehavior_Formatting" (xd:inputScopeId="INPUT_SCOPE_ID")? (xd:allowNonMatching="yes")? xd:boundProp="xd:num" xd:datafmt="DATA_FMT_CTRL_MSLB1"> <xsl:attribute name="xd:num"> <xsl:value-of select="." /> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="." /> </xsl:attribute> MSLB_CONDITIONAL_DISABLING2 MSLB_DATA_FORMATTING1 </span> </span> </xsl:for-each> <xsl:if test="not(REPEATING_LEAF_XPATH1[not(.=$options)])"> <span class="xdMultiSelectListItem"> MSLB_CUSTOM_VALUE <span title="" hideFocus="1" xd:xctname="PlainText" xd:binding="REPEATING_LEAF_XPATH1[.=''][1]" style="WIDTH: 70%;" tabIndex="TAB_INDEX1" class="xdMultiSelectFillIn" > </span> </span> </xsl:if> </span> </xsl:when> <xsl:otherwise> <span> LIST_MSLB </span> </xsl:otherwise> </xsl:choose>
MSLB_DATA_FORMATTING:
-
<xsl:choose> <xsl:when test="function-available('xdFormatting:formatString')"> <xsl:value-of select="xdFormatting:formatString(.,DATA_FMT_CTRL_MSLB1)" /> </xsl:when> <xsl:otherwise> <xsl:value-of select="." /> </xsl:otherwise> </xsl:choose>
MSLB_CUSTOM_VALUE:
-
<input type="checkbox" title="" xd:onValue="" xd:boundProp="xd:value" xd:binding="REPEATING_LEAF_XPATH1[.=''][1]" xd:xctname="CheckBox" tabIndex="TAB_INDEX1"> <xsl:attribute name="xd:value"> <xsl:value-of select="REPEATING_LEAF_XPATH1[.=''][1]" /> </xsl:attribute> <xsl:if test="REPEATING_LEAF_XPATH1=''"> <xsl:attribute name="CHECKED">CHECKED</xsl:attribute> </xsl:if> </input>
MSLB_DYNAMIC_OPTIONS_GROUP:
-
((<xsl:variable name="items"> <xsl:copy-of select="REPEATING_GROUP_XPATH1([PREDICATE_XPATH])?" /> </xsl:variable> <xsl:variable name="uniqueItems" select="msxsl:node-set($items)/*[not(RELATIVE_LEAF_XPATH3 = preceding::REPEATING_GROUP_XPATH1/RELATIVE_LEAF_XPATH3)]" /> <xsl:for-each select="$uniqueItems">) | <xsl:for-each select="REPEATING_GROUP_XPATH1 ([PREDICATE_XPATH1])?"/>) <span class="xdMultiSelectListItem"> <input type="checkbox" xd:boundProp="xd:value" xd:binding="." xd:xctname="CheckBox" tabIndex="TAB_INDEX1"> <xsl:attribute name="xd:value"> <xsl:value-of select="." /> </xsl:attribute> <xsl:attribute name="xd:onValue"> <xsl:value-of select="RELATIVE_LEAF_XPATH2" /> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="RELATIVE_LEAF_XPATH3" /> </xsl:attribute> <xsl:if test="RELATIVE_LEAF_XPATH2=$values"> <xsl:attribute name="CHECKED">CHECKED</xsl:attribute> </xsl:if> </input> <xsl:value-of select="RELATIVE_LEAF_XPATH3" /> </span> </xsl:for-each> <xsl:variable name="options" select="REPEATING_GROUP_XPATH1([PREDICATE_XPATH1])?/RELATIVE_LEAF_XPATH2" /
MSLB_DYNAMIC_OPTIONS_REPEATING_FIELD:
-
((<xsl:variable name="items"> <xsl:copy-of select="REPEATING_LEAF_XPATH2([PREDICATE_XPATH1])?" /> </xsl:variable> <xsl:variable name="uniqueItems" select="msxsl:node-set($items)/*[not(.= preceding::REPEATING_LEAF_XPATH2)]" /> <xsl:for-each select="$uniqueItems">) | <xsl:for-each select="REPEATING_LEAF_XPATH2([PREDICATE_XPATH1])?/>) <span class="xdMultiSelectListItem"> <input type="checkbox" xd:boundProp="xd:value" xd:binding="." xd:xctname="CheckBox" tabIndex=" TAB_INDEX1"> <xsl:attribute name="xd:value"> <xsl:value-of select="." /> </xsl:attribute> <xsl:attribute name="xd:onValue"> <xsl:value-of select="." /> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="." /> </xsl:attribute> <xsl:if test=".=$values"> <xsl:attribute name="CHECKED">CHECKED</xsl:attribute> </xsl:if> </input> <xsl:value-of select="." /> </span> </xsl:for-each> <xsl:variable name="options" select="REPEATING_LEAF_XPATH2([PREDICATE_XPATH1])?/." />
MSLB_STATIC_OPTIONS:
-
(<span class="xdMultiSelectListItem"> <input type="checkbox" title="ANY_STRINGX" xd:onValue="ANY_STRINGY" xd:boundProp="xd:value" xd:xctname="CheckBox" tabIndex="TAB_INDEX1"> <xsl:attribute name="xd:value"> <xsl:value-of select="REPEATING_LEAF_XPATH1[.="ANY_STRINGY"][1]"/> </xsl:attribute> <xsl:attribute name="xd:binding"> <xsl:value-of select="REPEATING_LEAF_XPATH1[.="ANY_STRINGY"][1]"/> </xsl:attribute> <xsl:if test="REPEATING_LEAF_XPATH1="ANY_STRINGY""> <xsl:attribute name="CHECKED">CHECKED</xsl:attribute> </xsl:if> </input>ANY_STRINGX</span>)*
MSLB_CHECKBOX:
-
<input type="checkbox" CHECKED="CHECKED" xd:onValue="{.}" xd:boundProp="xd:value" xd:binding="." xd:xctname="CheckBox" tabIndex="TAB_INDEX1"> <xsl:attribute name="xd:value"> <xsl:value-of select="."/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="."/> </xsl:attribute> </input>
MSLB_CONDITIONAL_FORMATTING:
-
(<xsl:attribute name="style"> MSLB_STYLES1 <xsl:choose> (<xsl:when test="BOOLEAN_XPATH_EXPRESSIONX">MSLB_CONDITIONAL_FORMATTING_STYLES</xsl:when>)* </xsl:choose> </xsl:attribute>)?
MSLB_CONDITIONAL_DISABLING:
-
(<xsl:choose> (<xsl:when test="BOOLEAN_XPATH_EXPRESSIONY"/> |<xsl:when test="BOOLEAN_XPATH_EXPRESSIONY"> <xsl:attribute name="disabled">true</xsl:attribute> </xsl:when)+ </xsl:choose>)?
LIST_MSLB: MUST be an HTML 4.1 fragment, as specified in [HTML], valid under the SPAN element that is also a valid XML 1.0 fragment, as specified in [W3C-XML]. This fragment MUST be ignored.
MSLB_STYLES: Semicolon-delimited list of (STYLE_BORDER?, STYLE_PADDING?, STYLE_BACKGROUND_COLOR?, STYLE_COLOR?, STYLE_MARGIN?, STYLE_FONT_STYLE?, STYLE_WIDTH?, STYLE_HEIGHT?, STYLE_FONT_FAMILY?, STYLE_VERTICAL_ALIGN?, STYLE_FONT_SIZE?, STYLE_FONT_WEIGHT?, STYLE_TEXT_DECORATION?, STYLE_TEXT_ALIGN?)
MSLB_CONDITIONAL_FORMATTING_STYLES: Semicolon-delimited list of (STYLE_DISPLAY_NONE, STYLE_CAPTION) or semicolon-delimited list of (STYLE_BACKGROUND_COLOR?, STYLE_COLOR?, STYLE_FONT_WEIGHT?, STYLE_FONT_STYLE?, STYLE_TEXT_DECORATION?, STYLE_CAPTION)
The following table lists control-specific attributes used by the multiple-selection list box control.
Attribute |
Section |
---|---|
xd:allowNonMatching |
|
xd:binding |
|
xd:boundProp |
|
xd:CtrlId |
|
xd:datafmt |
|
xd:inputScopeId |
|
xd:num |
|
xd:onValue |
|
xd:postbackModel |
|
xd:ref |
|
xd:value |
|
xd:xctname |