我有Java程序,我使用Primefaces分页和延迟加载。 我想在rowsPerPageTemplate中添加“Show All”。
<p:dataTable var="info"
value="#{infoMB.lazyModel}"
id="infoTable"
width="100%"
liveResize="true"
paginator="true"
rows="50"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="50,100,"Show all" rowsPerPageAllEntry="true"
lazy="true">
答案 0 :(得分:0)
似乎适合我。在rowsPerPageTemplate
999999999中填写最后一个选项。
<script>
function updateShowAll() {
$('.ui-paginator-rpp-options').children().each(function() {if ($(this).text() === '999999999'){$(this).text('Show all')}});
}
updateShowAll();
$(document).on('pfAjaxComplete', updateShowAll);
</script>
事件处理程序是为了避免在update
数据表后手动调用js-function。
似乎这将通过使用&#34; *&#34;。
在PF 6.1中内置答案 1 :(得分:0)
我同意@Jaqen H'ghar在评论部分的声明,这是我所见过的最神秘的答案。我在这里发布解决方案,以防其他人对此寻求解决方案。
我正在使用 Primefaces-7.0 ,并查看了org/primefaces/component/paginator/RowsPerPageDropDownRenderer.class
的代码,并找到了以下代码:
if (option.trim().startsWith("{ShowAll|")) {
optionText = option.substring(option.indexOf("'") + 1, option.lastIndexOf("'"));
rows = pageable.getRowCount();
} else {
optionText = option.trim();
rows = Integer.parseInt(optionText);
}
因此,为了使示例正常工作,您应该添加{ShowAll|'Show All'
,这将在下拉选择器中添加** Show All **选项,该选项将在一页中显示列表的所有行。 / p>
Primefaces-7.0示例({ShowAll|'Show All'
)
<p:dataTable var="info"
value="#{infoMB.lazyModel}"
id="infoTable"
width="100%"
liveResize="true"
paginator="true"
rows="50"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="50,100,{ShowAll|'Show All' " rowsPerPageAllEntry="true"
lazy="true">
Primefaces 6.2示例(*
或All rows
)
<p:dataTable var="info"
value="#{infoMB.lazyModel}"
id="infoTable"
width="100%"
liveResize="true"
paginator="true"
rows="50"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="50,100,*" rowsPerPageAllEntry="true"
lazy="true">
答案 2 :(得分:-1)
要使commandButton出现在dataTable中,请执行以下示例:
<p:dataTable ... >
<f:facet name="header" > <p:commandButton value="Validate button" action="#{managedBean.method()}" > </p:commandButton> </f:facet>
</p:dataTable ... >
您甚至可以将其显示在dataTable的底部,如下所示
<p:dataTable ... >
<f:facet name="footer" > <p:commandButton value="Validate button" action="#{managedBean.method()}" > </p:commandButton> </f:facet>
</p:dataTable ... >
希望能帮到你。