[t5.2.6]在循环内生成区域,然后更新其中的一些区域

时间:2011-09-05 18:32:34

标签: java ajax tapestry

我一直试图这样做一段时间但没有任何效果。我搜索了这个清单,但仍然无法弄明白!!

这是我的情况,我使用页面激活上下文中提供的维度绘制表格。所以我无法预测我可能有多少行或列。 列中的每个标题都有一个选择字段,因此每行最左边的单元格。 每个选择字段都应更新整个行或列,具体取决于哪个选择字段的值已更改。

以下是我的网页tml文件的一部分,以便详细说明。 “???”只是不是我需要选择更新区域,但我只是不知道该放在这里!

<t:form>
    <div style="overflow: auto;">
        <table class="contentpane skyTable" width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
            <tr>
                <td bgcolor="lightgray"/>
                <td t:type="loop" t:source="1 .. width" t:value="widthIndex">
                    ${widthIndex} - <t:select t:id="toNode" model="toProbesModel" zone="???"/>
                </td>
            </tr>
            <tr t:type="loop" t:source="1 .. height" t:value="heightIndex">
                <td>${heightIndex} - <t:select t:id="fromNode" model="fromProbesModel" zone="???"/></td>
                <t:loop t:source="1 .. width" t:value="widthIndex">
                    <td row="${heightIndex}" col="${widthIndex}" from="" to="" style="background-color: #BDBDBD;">
                        <t:zone id="${widthIndex}-${heightIndex}">
                            N/A
                        </t:zone>
                    </td>
                </t:loop>
            </tr>
        </table>
    </div>
</t:form>

整个想法是向XHR请求添加更多信息,这很可能有助于解决我的问题。

如果目前这种情况不可能。可能有人可以帮我请求使用原型ajax调用来加载这些页面片段,而不是使用tapestry的功能,尽管我讨厌这个!我想用挂毯做好事:))

此外,我需要修改正在更新的“样式”属性的单元格,以添加图像作为其背景,并在单元格完全更新时添加远程属性。只是为了显示一个装载机gif。

此外,假设由于选择值更改而更新列,此列中的每个单元格都应具有特定属性,更改为选择字段的新值。与行相同的故事。每个要连接更新的单元格需要在其中具有特定属性才能更改为选择字段的值。这些属性将在“td”元素中。

为了解决这个问题,我需要从客户端的页面中收集一些参数并将其添加到区域的激活上下文中,该上下文与页面相同,但我可以从那里检测它是否是XHR请求。

我已经使用servlet工作,但我喜欢使用tapestry:)

非常感谢。

1 个答案:

答案 0 :(得分:1)

您指定的区域应该只是存在的任何区域。哪一个并不重要,因为您需要在事件方法中指定服务器端哪个区域使用MultiZoneUpdater更新哪些内容。请查看this example如何。

另一方面,如果你创建一个表头,你可能想要使用THEAD,TH和TBODY标签而不是使用一个旧的TR TD组合。