Java 使用输入和/或链接装饰Tapestry网格,以设置每页的自定义行数
又是我:) 我试图用以下方式扩展Tapestry网格的以下行为 目前,我可以选择每页显示多少行,如下所示:Java 使用输入和/或链接装饰Tapestry网格,以设置每页的自定义行数,java,pagination,grid,paging,tapestry,Java,Pagination,Grid,Paging,Tapestry,又是我:) 我试图用以下方式扩展Tapestry网格的以下行为 目前,我可以选择每页显示多少行,如下所示: <t:grid class="t-form-loop" t:source="myGridDataSource" t:model="myBeanModel" t:row="myEntry" t:encoder="myEncoder" t:rowsPerPage="20" t:pagerPosition="both" t:rowIn
<t:grid class="t-form-loop"
t:source="myGridDataSource"
t:model="myBeanModel"
t:row="myEntry"
t:encoder="myEncoder"
t:rowsPerPage="20"
t:pagerPosition="both"
t:rowIndex="currentIndex"
t:inplace="true">
t:rowsPerPage="myRowsPerPage"
但是,假设我有20-30页。在每一个网格上添加相同的代码将是无用和愚蠢的,因此我假设我想以某种方式装饰现有的网格。但是,我不想在全球范围内这样做,因为在某些页面上我想提供此功能,而在某些页面上我不想提供此功能
因此,鉴于我对Tapestry的了解有限,我假设我有两种选择:
t:rowsPerPageValues=“10,20,50100”
b
t:rowsPerPageInput=“true”
编辑:我希望它看起来像这样(sry表示糟糕的HTML):我认为您应该创建一个新组件,该组件具有嵌入式
t:grid
。你可能会发现这会有所帮助
例如:
ExtendedGrid.java
public class ExtendedGrid {
@Component(id="grid", publishParameters="source,inplace,etc,etc")
private Grid grid;
@Property
private int rowsPerPage;
}
extendedGrid.tml
<t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<t:form zone="gridZone">
<t:select t:id="rowsPerPage" model="[10,20,50,100]" /> <t:submit />
</t:form>
<t:zone t:id="gridZone">
<t:grid t:id="grid" rowsPerPage="prop:rowsPerPage" />
</t:zone>
</t:container>
page.tml
<t:extendedGrid source="mySource" inplace="true" />
事实上,我已经尝试过mixin方法(遵循您的网格单元装饰器),除了一件事之外,我已经做了所有的事情。Grid没有“rowsPerPage”的setter:(您可以使用@BindParameter从mixin更新组件属性,但您会遇到问题,因为rowsPerPage默认为文本绑定。您无法从mixin更新绑定到文本:
的值。更多详细信息:(顺便说一句,如果我已经有了一个带有我自己显示模型的网格,并且我在我的旧网格组件中像..
一样使用它,那么当我用扩展网格替换网格时,这些参数会发生什么变化?也许你可以做一个动态参数列表@component(id=“Grid”),publishParameters=“prop:myCalculatedParameterList”)
否,这些是正式参数。t:rowsPerPageValues=“prop:[10,20,5010010001000000]”
。