网格分页在循环中中断

时间:2014-08-20 18:45:00

标签: tapestry

我发现Tapestry Grid组件存在奇怪的问题(但很可能是它的预期)。经过更长时间的解释后,问题将会到底。

当在循环内使用Grid时,分页会停止向分页链接添加唯一的网格ID。显示该行为的简单示例

<t:numbersgrid max="literal:6"/>
<t:numbersgrid max="literal:6"/>

<t:loop source="numbers" value="number" index="index">
    <t:numbersgrid max="index"/>
</t:loop>

前两个numbergrid组件,获取正确的id。分页链接遵循.../T5sample/about.numbersgrid.grid.pager/2.../about.numbersgrid_0.grid.pager/2,这使得Grid的行为正确。 内部循环中的所有网格都会获得.../about.numbersgrid_1.grid.pager/2之类的链接,这些链接不起作用:/

简化代码(读取:行号网格)

<t:loop source="numbers" value="number" index="index">
<t:grid source="numbers" row="gridNumber" pagerPosition="bottom" rowsPerPage="2" t:add="number">
     <p:numberCell>
         ${number}
     </p:numberCell>
 </t:grid>

也没有帮助。效果非常有趣,但这只是另一个话题的好主题。

我不明白的事情,这就是为什么它不起作用。它应该是可能的,但我甚至不知道从哪里开始搜索。

问题:有什么方法可以让它发挥作用。甚至可以为T5制作一个补丁(本地更改,甚至不在主回购中),这会使其成为可能的工作吗?

感谢您提供任何线索。

1 个答案:

答案 0 :(得分:2)

您可能已经意识到,将一个组件放在一个循环中意味着该组件的一个实例被多次渲染。这是挂毯的principles静态结构,动态行为&#34 ;.

您偶然发现了网格组件的限制。它确实应该接受一个上下文参数并将值传递给服务器端事件(排序,分页)以支持这样的用例。

您可以观看TAP5-2297来跟踪进度。或者更好的是,提交一个包含适当测试用例的补丁。