2.4.1.16 Repeating Table Control
A repeating table control acts as a container for other controls, and can appear multiple times in an instance of a form. It has a tabular format. The following table describes the symbols for a repeating table control.
Symbol |
Description |
---|---|
SIMPLE_REPEATING_TABLE |
A repeating table is a structural control that overloads the HTML table element. It is possible to dynamically add and remove rows. |
REPEATING_TABLE_WITH_CONDITIONAL_FORMATTING |
Similar to SIMPLE_REPEATING_TABLE, with the ability to conditionally change background color and disable adding or removing rows. |
REPEATING_TABLE_WITH_PREDICATE_XPATH |
Similar to SIMPLE_REPEATING_TABLE, with the ability to filter table rows. |
REPEATING_TABLE_WITH_PREDICATE_XPATH_AND_CONDITIONAL_FORMATTING |
Similar to REPEATING_TABLE_WITH_CONDITIONAL_FORMATTING, with the ability to filter table rows. |
In any production defined in this section, any use of a TAB_INDEX with the same subscript MUST have an identical yield.
SIMPLE_REPEATING_TABLE:
-
<table class="xdRepeatingTable msoUcTable" title="ANY_STRING" style="TABLE-LAYOUT: fixed; STYLE_WIDTH; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; BORDER-BOTTOM-STYLE: none" border="1" xd:CtrlId="CONTROL_ID" (xd:postBackModel="POST_BACK_MODEL_VALUE")? xd:widgetIndex="TABINDEX1" WIDTH?> <colgroup> TABLE_COLUMN+ </colgroup> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableHeader"> TABLE_ROW* </tbody>)? <tbody (style="STYLE_DIRECTION")? xd:xctname="RepeatingTable"> CHECK_FOR_GETDOM_BEGIN1 <xsl:for-each select="GROUP_XPATH"> TABLE_ROW* </xsl:for-each> CHECK_FOR_GETDOM_END1 </tbody> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableFooter"> TABLE_ROW* </tbody>)? </table> (<div class="optionalPlaceholder" xd:xmlToEdit="XML_TO_EDIT_NAME" tabIndex="TAB_INDEX1" xd:action="xCollection::insert" style="STYLE_WIDTH">ANY_STRING</div>)?
REPEATING_TABLE_WITH_CONDITIONAL_FORMATTING:
-
<table class="xdRepeatingTable msoUcTable" title="ANY_STRING" style="TABLE-LAYOUT: fixed; STYLE_WIDTH; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; BORDER-BOTTOM-STYLE: none" border="1" xd:CtrlId="CONTROL_ID" (xd:postBackModel="POST_BACK_MODEL_VALUE")? xd:widgetIndex="TABINDEX1"> <colgroup> TABLE_COLUMN+ </colgroup> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableHeader"> TABLE_ROW* </tbody>)? <tbody (style="STYLE_DIRECTION")? xd:xctname="RepeatingTable"> CHECK_FOR_GETDOM_BEGIN1 <xsl:for-each select="GROUP_XPATH"> REPEATING_TABLE_ROWS_WITH_CONDITIONALVISIBILITY | TABLE_ROW_WITH_CONDITIONAL_FORMATTING* </xsl:for-each> CHECK_FOR_GETDOM_END1 </tbody> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableFooter"> TABLE_ROW* </tbody>)? </table> (<div class="optionalPlaceholder" xd:xmlToEdit="XML_TO_EDIT_NAME" tabIndex="TAB_INDEX1" xd:action="xCollection::insert" style="STYLE_WIDTH">ANY_STRING</div>)?
REPEATING_TABLE_WITH_PREDICATE_XPATH:
-
<table class="xdRepeatingTable msoUcTable" title="ANY_STRING" style="TABLE-LAYOUT: fixed; STYLE_WIDTH; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; BORDER-BOTTOM-STYLE: none" border="1" xd:CtrlId="CONTROL_ID1" (xd:postBackModel="POST_BACK_MODEL_VALUE")? xd:widgetIndex="TABINDEX1"> <colgroup> TABLE_COLUMN+ </colgroup> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableHeader"> TABLE_ROW* </tbody>)? <tbody (style="STYLE_DIRECTION")? xd:xctname="RepeatingTable"> CHECK_FOR_GETDOM_BEGIN1 (<xsl:variable name=("filterParentHasNewRows(CONTROL_ID1)") select="xdXDocument:GetNamedNodeProperty(RELATIVE_GROUP_XPATH1,"filterHasNewRows", "false")"/> <xsl:variable name=("filterParentVersion(CONTROL_ID1)") select="xdXDocument:GetNamedNodeProperty(RELATIVE_GROUP_XPATH1,"parentFilterVersion","0")"/>) <xsl:for-each select="GROUP_XPATH([PREDICATE_XPATH or ($filterParentHasNewRows(CONTROL_ID1)= "true" and xdXDocument:GetNamedNodeProperty(., "filterVersion", "0") > $filterParentVersion(CONTROL_ID1))])"> </xsl:for-each> CHECK_FOR_GETDOM_END1 </tbody> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableFooter"> TABLE_ROW* </tbody>)? </table> (<div class="optionalPlaceholder" xd:xmlToEdit="XML_TO_EDIT_NAME" tabIndex="TAB_INDEX1" xd:action="xCollection::insert" style="STYLE_WIDTH">ANY_STRING</div>)?
REPEATING_TABLE_WITH_PREDICATE_XPATH_AND_CONDITIONAL_FORMATTING:
-
<table class="xdRepeatingTable msoUcTable" title="ANY_STRING" style="TABLE-LAYOUT: fixed; STYLE_WIDTH; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; BORDER-BOTTOM-STYLE: none" border="1" xd:CtrlId="CONTROL_ID1" (xd:postBackModel="POST_BACK_MODEL_VALUE")? xd:widgetIndex="TABINDEX1"> <colgroup> TABLE_COLUMN+ </colgroup> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableHeader"> TABLE_ROW* </tbody>)? <tbody (style="STYLE_DIRECTION")? xd:xctname="RepeatingTable"> CHECK_FOR_GETDOM_BEGIN1 (<xsl:variable name=("filterParentHasNewRows(CONTROL_ID1)") select="xdXDocument:GetNamedNodeProperty(RELATIVE_GROUP_XPATH1,"filterHasNewRows", "false")"/> <xsl:variable name=("filterParentVersion(CONTROL_ID1)") select="xdXDocument:GetNamedNodeProperty(RELATIVE_GROUP_XPATH1,"parentFilterVersion","0")"/>) <xsl:for-each select="GROUP_XPATH([PREDICATE_XPATH or ($filterParentHasNewRows(CONTROL_ID1)= "true" and xdXDocument:GetNamedNodeProperty(., "filterVersion", "0") > $filterParentVersion(CONTROL_ID1))]) "> REPEATING_TABLE_ROWS_WITH_CONDITIONALVISIBILITY | TABLE_ROW_WITH_CONDITIONAL_FORMATTING* </xsl:for-each> CHECK_FOR_GETDOM_END1 </tbody> (<tbody (valign="VALIGN")? (style="STYLE_DIRECTION")? class="xdTableFooter"> TABLE_ROW* </tbody>)? </table> (<div class="optionalPlaceholder" xd:xmlToEdit="XML_TO_EDIT_NAME" tabIndex="TAB_INDEX1" xd:action="xCollection::insert" style="STYLE_WIDTH">ANY_STRING</div>)?
REPEATING_TABLE_ROWS_WITH_CONDITIONALVISIBILITY:
-
<xsl:if test="not(BOOLEAN_XPATH_EXPRESSION)"> TABLE_ROW_WITH_CONDITIONALVISIBILITY* </xsl:if>
TABLE_ROW_WITH_CONDITIONAL_FORMATTING:
-
<tr> (TABLE_ROW_CONDITIONAL_FORMATTING_EXPR)? (TABLE_CELL)+ </tr>
TABLE_ROW_WITH_CONDITIONALVISIBILITY:
-
<tr HIDDEN_FORMATTING_CAPTION> (TABLE_ROW_CONDITIONAL_FORMATTING_EXPR)? (TABLE_CELL)+ </tr>
TABLE_ROW_CONDITIONAL_FORMATTING_EXPR:
-
<xsl:attribute name="style"> MIN_HEIGHT? <xsl:choose> (<xsl:when test="BOOLEAN_XPATH_EXPRESSIONx">CONTAINER_CONDITIONAL_FORMATTING</xsl:when>)+ </xsl:choose> (<xsl:if test="BOOLEAN_XPATH_EXPRESSION">STYLE_DISABLE_CHILD_XML_TO_EDIT</xsl:if>)* </xsl:attribute>
CONTAINER_CONDITIONAL_FORMATTING: Semicolon-delimited list of (STYLE_BACKGROUND_COLOR?, STYLE_CAPTION).
The following table lists control-specific attributes used by the repeating table control.
Attribute |
Section |
---|---|
Xd:action |
section 2.4.2.1 |
xd:CtrlId |
section 2.4.2.10 |
xd:postBackModel |
section 2.4.2.29 |
xd:widgetIndex |
section 2.4.2.37.10 |
xd:xctname |
section 2.4.2.35 |
xd:xmlToEdit |
section 2.4.2.36 |