1

我遇到了与此处所述类似的问题:(http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Zone-refresh-inserts-duplicate-html-td5722328.html

当我通过单击排序图标对我的Grid(使用从数据库中提取数据的自定义提供,排序在 DB 端完成)进行排序时,我的网格会被复制,因为当前网格的副本显示在其下方。GridDataSource任何以下网格排序事件只会影响我单击排序列的网格。例如,如果我单击按第一个网格中的第一列排序,则第二个网格不受影响,反之亦然。当我刷新页面时,第二个网格消失了,事情又从第 1 格开始了。

我已经尝试过 Thiago H. de Paula Figueiredo 的建议,他说我可以尝试将区域的主体而不是区域本身传递给addRender方法,但没有结果。

编辑:添加代码。

我的页面结构:

<t:zone t:id="zone1" id="zone1">
    <t:form t:id="form1" id="form1" t:zone="zone1">
        <t:beaneditor t:id="filterEditor" t:object="filter">
        </t:beaneditor>
        ...
        <input id="submitFilter" t:id="submitFilter" class="button" t:type="submit" value="Submit" zone="zone1"/>
    </t:form>

    <t:form t:id="form2" id="form2" t:zone="^">
        <input id="resetFilter" t:id="resetFilter" class="button" t:type="submit" value="Reset" zone="zone1"/>
    </t:form>
</t:zone>
<t:zone t:id="zone2" id="zone2">
        <t:form t:id="form3" id="form3" t:zone="^" t:autofocus="true">
            ...
            <input type="submit" value="Cancel" class="button"/>
        </t:form>
</t:zone>
<t:zone t:id="zone3" id="zone3">
    <t:form t:id="form4" id="form4" t:zone="^" t:autofocus="false">
        <t:errors/>

        <table>
            <t:grid t:source="dataSource"
                    t:model="beanModel"
                    t:row="entry"
                    t:encoder="encoder"
                    t:rowsPerPage="5"
                    t:pagerPosition="both"
                    t:inplace="true">

                    <p:cell1>
                    ...
                    </p:cell1>

                    <p:cell2>
                    ...
                    </p:cell2>

                    <p:cell3>
                    ...
                    </p:cell3>

                    <p:cell4>
                    ...
                    </p:cell4>

                    <p:cell5>
                    ...
                    </p:cell5>
            </t:grid>
        </table>
    </t:form>
</t:zone>

当我单击对 zone3 中网格上的单元格进行排序时(排序是在 DB 端通过 SQL 完成的),表格 HTML 复制并充当另一个单独的表格。

我试过像这样更新我的区域:

if (request.isXHR()) {
    ajaxResponseRendered.addRender(zone1).addRender(zone2).addRender(zone3);
}

像这样:

if (request.isXHR()) {
    ajaxResponseRendered.addRender(zone1.getCliendId(), zone1.getBody()).addRender(zone2.getCliendId(), zone2.getBody()).addRender(zone3.getCliendId(), zone3.getBody());
}

但它没有用。

4

0 回答 0