在PrimeFaces的DataTable Paginator下拉列表中显示“全部显示”选项
我有Java程序,我使用Primefaces分页和延迟加载。 我想在rowsPerPageTemplate中添加Show All在PrimeFaces的DataTable Paginator下拉列表中显示“全部显示”选项,primefaces,jsf-2,pagination,Primefaces,Jsf 2,Pagination,我有Java程序,我使用Primefaces分页和延迟加载。 我想在rowsPerPageTemplate中添加Show All <p:dataTable var="info" value="#{infoMB.lazyModel}" id="infoTable" width="100%" liveResize="true"
<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">
要使commandButton显示在dataTable fallow中,请执行以下示例:
<p:dataTable ... >
<f:facet name="header" > <p:commandButton value="Validate button" action="#{managedBean.method()}" > </p:commandButton> </f:facet>
</p:dataTable ... >
您甚至可以像这样在数据表的底部显示它
<p:dataTable ... >
<f:facet name="footer" > <p:commandButton value="Validate button" action="#{managedBean.method()}" > </p:commandButton> </f:facet>
</p:dataTable ... >
希望这对你有帮助 似乎对我有用。在rowsPerPageTemplate 9999999中设置最后一个选项
<script>
function updateShowAll() {
$('.ui-paginator-rpp-options').children().each(function() {if ($(this).text() === '999999999'){$(this).text('Show all')}});
}
updateShowAll();
$(document).on('pfAjaxComplete', updateShowAll);
</script>
事件处理程序是为了避免在更新datatable后必须记住手动调用js函数
这似乎将通过使用*在PF 6.1中构建。我同意@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**选项,该选项将在一个页面中显示列表中的所有行
示例Primefaces-7.0{ShowAll |“Show All”
为什么不把它放在表格的标题中呢?谢谢你的评论,如何放在标题中?它看起来是这样的。它将直接放在下面。谢谢你的时间和帮助。我是Java初学者,什么是平均操作={managedBean.method}?@AllexFerra它可以是任何java方法public void method{…}@AllexFerra有什么新东西吗?!这是我见过的最神秘的答案
<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">
<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">