Primafaces'使用过滤值时,数据表分页无法正常工作

时间:2015-04-23 09:09:04

标签: jsf-2 primefaces datatable pagination

我在我的网络应用程序中使用JSF 2.0PrimeFaces 5.2。在一个页面中有一个Datatable显示以Database分页存储的票证。 通常pagination工作正常但是当我使用filterBy过滤门票时,它返回4页,其中第一页显示正确过滤的Ticktes,只要我点击第2页或任何页码大于1,Datatable没有显示过滤结果,而是显示相应页面的未过滤票证,好像没有应用过滤器,我也希望在其他页面上过滤结果。

更准确地说,当我点击大于1的页码时,Datatable从过滤后的票组中取出相应的页面,而不是所有票证的集合。请告诉我该怎么做?

我已经浏览了PrimeFaces 5.2'用户指南,并阅读了Datatable的属性并尝试了一些似乎有用的问题,但问题仍然存在。

这是我的数据表,

<p:dataTable id="tickets" var="ticket"
                value="#{ticketBean.ticketModels}" paginator="true" rows="10"
                filteredValue="#{ticketBean.filteredTickets}">



                <p:column headerText="Summary" style="width:300px;">
                    <h:outputText value="#{ticket.summary}" />
                </p:column>



                <p:column headerText="Status" filterBy="#{ticket.status}"
                    filterOptions="#{ticketBean.statusFilterList}"
                    filterMatchMode="exact" style="width:110px;">
                    <h:outputText value="#{ticket.status}" />
                </p:column>

                <p:column headerText="Assigned To" filterBy="#{ticket.assignedTo}"
                    filterOptions="#{ticketBean.userFilterList}" filterMatchMode="exact"
                    style="width:110px;">
                    <h:outputText value="#{ticket.assignedTo}" />
                </p:column>
    ....................................
            </p:dataTable>

1 个答案:

答案 0 :(得分:-1)

只需将以下行添加到p:datatable并检查相同的

paginator="true" rows="10" 
paginatorTemplate="{CurrentPageReport}  {FirstPageLink} 
{PreviousPageLink} {PageLinks}
{NextPageLink} {LastPageLink} {RowsPerPageDropdown} " 
rowsPerPageTemplate="10,15,20"