Hello, We've got a TableView (wrapped in a Form component) that consists of a variety of form elements. We're noticing a problem when the values of these elements (like textfields) is changed. Here's a use case: I have 10 rows, each is updated and when the changes are submitted, the iterator only sets the new values on the first row...so row 1 is updated with the values of row 1, then row 1 is updated with row 2,...repeat until the last row is reached - where row 1 will then contain row 10's values - and the rest of the rows values remain unchanged (with values before any changes were submitted).
Please help, this thing's on its way to QA.... <table width="100%" border="0" jwcid="layoutNavTable" name="layoutNavTable" id="layoutNavTable" class="centerInnerTbl"> <span jwcid="layoutNavTableColumns"/> <span jwcid="layoutNavTableRows"> <!-- Blocks for custom rows values --> <span jwcid="layoutNavTableValues"> <span jwcid="actionsColumnValue"> <input jwcid="deleteNavColumn" image="ognl:components.reportMapAssets.assets.deleteAction" alt="Delete Admin Report Map" onclick="javascript: getConfirmation();" class="imgInput"/> </span> <span jwcid="sortColumnValue"> <span jwcid="sortField"></span> </span> <span jwcid="colTitleColumnValue"> <span jwcid="colTitleField"></span> </span> <span jwcid="dataFieldColumnValue"> <span jwcid="dataField"></span> </span> <span jwcid="alignColumnValue"> <input jwcid="alignSelect"/> </span> <span jwcid="typeColumnValue"> <input jwcid="typeSelect"/> </span> <span jwcid="widthColumnValue"> <span jwcid="width"></span> </span> <span jwcid="colSpanColumnValue"> <span jwcid="colSpan"></span> </span> <span jwcid="navContextColumnValue"> <span jwcid="navContextSelect"/> </span> <span jwcid="visibleColumnValue"> <input jwcid="visibleSelect"/> </span> <span jwcid="requiredColumnValue"> <input jwcid="requiredSelect"/> </span> </span> <!-- //end rows block --> </span> <tr> <td colspan="11" align="right"><input jwcid="addNavColumn" class="submitBtn"/></td> </tr> </table> /** From the .page file **/ <property name="row"/> <!-- holder for current collection row --> <property name="currentEntry"/> <property name="currentMap"/> <component id="layoutNavTable" type="contrib:TableView"> <binding name="source" value="layoutNavColumns"/> <binding name="columns" value="literal:!actions: :actions, !sort:Order:sort, !colTitle:Col Title:colTitle, !dataField:Data Field:dataField, !align:Align:align, !type:Type:type, !width:Width %:width, !colSpan:Colspan:colSpan, !navContext:Nav Context:navContext, !visible:Visible:visble, !required:Required:required"/> </component> <component id="layoutNavTableColumns" type="contrib:TableColumns"> <binding name="arrowUpAsset" value=" components.reportMapAssets.assets.upArrow"/> <binding name="arrowDownAsset" value=" components.reportMapAssets.assets.downArrow"/> </component> <component id="layoutNavTablePages" type="contrib:TablePages"/> <component id="layoutNavTableRows" type="contrib:TableRows"> <binding name="row" value="row"/> <!-- The value object of the current row being rendered --> </component> <component id="layoutNavTableValues" type="contrib:TableValues"/> <component id="actionsColumnValue" type="Block"/> <component id="deleteNavColumn" type="ImageSubmit"> <binding name="listener" value="listener:doDeleteNavColumn"/> <binding name="parameters" value="row"/> </component> <!-- Customized sort column --> <component id="sortColumnValue" type="Block"/> <component id="sortField" type="TextField"> <binding name="value" value="ognl:row.sort"/> <binding name="size" value="1"/> <binding name="translator" value="translator:number"/> <binding name="validators" value="validators:min=0"/> <binding name="displayName" value="literal:Sort"/> </component> <!-- Customized columnTitle column --> <component id="colTitleColumnValue" type="Block"/> <component id="colTitleField" type="TextField"> <binding name="value" value="ognl:row.colTitle"/> <binding name="size" value="15"/> </component> <!-- Customized Data Field column --> <component id="dataFieldColumnValue" type="Block"/> <component id="dataField" type="TextField"> <binding name="value" value="ognl:row.dataField"/> <binding name="size" value="15"/> </component> <!-- Customized Align column --> <component id="alignColumnValue" type="Block"/> <component id="alignSelect" type="PropertySelection"> <binding name="model" value="row.availAlign"/> <binding name="value" value="row.align"/> </component> <!-- Customized Type column --> <component id="typeColumnValue" type="Block"/> <component id="typeSelect" type="PropertySelection"> <binding name="model" value="row.availType"/> <binding name="value" value="row.type"/> </component> <!-- Customized Width column --> <component id="widthColumnValue" type="Block"/> <component id="width" type="TextField"> <binding name="value" value="ognl:row.width"/> <binding name="size" value="1"/> </component> <!-- Customized Colspan column --> <component id="colSpanColumnValue" type="Block"/> <component id="colSpan" type="TextField"> <binding name="value" value="ognl:row.colSpan"/> <binding name="size" value="1"/> </component> <!-- Customized Nav Context column --> <component id="navContextColumnValue" type="Block"/> <component id="navContextSelect" type="PropertySelection"> <binding name="model" value="row.availNavContext"/> <binding name="value" value="row.navContext"/> </component> <component id="addNavColumn" type="Submit"> <binding name="listener" value="listener:doAddNavColumn"/> <binding name="value" value="literal:Add Column"/> </component> <!-- Customized Visible column --> <component id="visibleColumnValue" type="Block"/> <component id="visibleSelect" type="PropertySelection"> <binding name="model" value="row.availVisible"/> <binding name="value" value="row.visible"/> </component> <!-- Customized Required column --> <component id="requiredColumnValue" type="Block"/> <component id="requiredSelect" type="PropertySelection"> <binding name="model" value="row.availRequired"/> <binding name="value" value="row.required"/> </component> <!-- Customized Parameter column --> <component id="parameterTable" type="contrib:TableView"> <binding name="source" value="paramColumns"/> <binding name="columns" value="literal:!deleteActions: :deleteActions, !parameter:Parameter:parameter, !value:Value:value"/> </component> <component id="parameterTableColumns" type="contrib:TableColumns"></component> <component id="parameterTablePages" type="contrib:TablePages"/> <component id="parameterTableRows" type="contrib:TableRows"> <binding name="row" value="currentEntry"/> <!-- The value object of the current row being rendered --> </component> <component id="parameterTableValues" type="contrib:TableValues"/> <component id="deleteActionsColumnValue" type="Block"/> <component id="paramDeleteColumn" type="ImageSubmit"> <binding name="listener" value="listener:doDeleteParamColumn"/> <binding name="parameters" value="currentEntry"/> <binding name="image" value="ognl: components.reportMapAssets.assets.deleteAction"/> <binding name="alt" value="literal:Delete Report Map"/> </component>