PF DataTable过滤器功能不起作用

时间:2017-06-02 13:42:36

标签: jsf primefaces datatable

Prime faces:6.0我试图在PrimeFaces DataTable中启用全局搜索功能,类似于我在PrimeFaces展示中看到的。 我输入的任何搜索字符串都返回一个空结果集。我能够实现分页,但全局搜索是一个问题。 这是我的代码:

<h:form>
    <p:dataTable var="pres" value="#{presBean.presentations}" rows ="10"
    paginator="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    rowsPerPageTemplate="10,25,100" widgetVar="presTable" **filteredValue="#{presBean.filteredPres}"**>

    <p:column headerText="Title" sortBy="#{pres.title}">
    <!--f:facet name="header" sortBy="#{pres.title}">
        <h:outputText value="Title" />
    </f:facet-->
    <h:outputText value="#{pres.title}" />
</p:column>
<p:column headerText="Presenter" sortBy="#{pres.presenter}">
    <!--f:facet name="header">
        <h:outputText value="Presenter" />
    </f:facet-->
    <h:outputText value="#{pres.presenter}" />
</p:column>
</h:form>

2 个答案:

答案 0 :(得分:1)

您的valuefilteredValue不应指向相同的bean属性。 filteredValue应该使用相同的签名定位另一个(初始空的)列表。

PF会将与过滤器匹配的结果移动到此列表中,并在每次调用.filter()时清除此列表 - 因此您只是暂时丢弃“未过滤”的结果,因为您指向到同一个名单。

答案 1 :(得分:0)

我的错误。我没有对所有字段进行过滤。一旦我将过滤器添加到表的所有字段,它就开始工作了。