如何从PrimeFaces数据表自定义分页

时间:2012-08-27 06:11:02

标签: jsf datatable primefaces pagination

我想自定义 PrimeFace 的数据表分页。

目前显示底部的页数为:(1 of 5)。我想在总页数中显示一页中的记录数,例如:(1-10 of 50)

我已将我的代码包含在下方 - 但它不起作用。有人可以帮忙吗?

<p:dataTable id="tblStatusSearch" var="item" rowIndexVar="rowStatusSearch"      
    rows="10" paginator="true"  
    paginatorTemplate="{CurrentPageReport}  
    {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} "
    value="#{StatusAction.listEBeans}"

<f:facet name="footer"> 
    <h:outputText value="#{rowStatusSearch + 1} - 10 out of #{bondLocationStatusAction.itemCount}"/>
</f:facet>

3 个答案:

答案 0 :(得分:25)

您可以将PrimeFaces currentPageReportTemplate用于 CurrentPageReport ,如下所示:

<p:dataTable id="tblStatusSearch" var="item" paginator="true" rows="10"
    currentPageReportTemplate="Showing {startRecord}-{endRecord} out of {totalRecords}"
    paginatorTemplate="{CurrentPageReport}  
{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} "
    value="#{StatusAction.listEBeans}">

我确认它在PrimeFaces 3.4.2中有效。它存在于PrimeFaces 3.0的用户指南中,因此如果您使用的是PrimeFaces 3.x,它应该适合您。

答案 1 :(得分:2)

这将解决你的目的。

<p:dataTable id="datatable" var="car" value="#{myBean.cars}" paginator="true" rows="10"  
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CurrentPageReport}"
currentPageReportTemplate="{startRecord} - {endRecord} of {totalRecords}">
<p:column...../>
<p:column...../>
</p:datatable>    

代替{CurrentPageReport},您将能够看到您要找的内容。

答案 2 :(得分:0)

"please refer to the attached image"我认为您忘记附上图片;)

如果要在p:datatable中显示页面大小,则应在bean中声明两个字段,并在pageSize方法中保存firstload个参数值然后,您可以使用以下paginatorTemplate显示页面大小:

paginatorTemplate=" {CurrentPageReport} #{yourBean.first + yourBean.pageSize} and rest of you template "

请记住EL适用于paginatorTemplate属性。