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>

Reply via email to