2017-06-02 57 views
0

主面:6.0我試圖在PrimeFaces DataTable中啓用全局搜索功能,這與我在PrimeFaces展示中看到的類似。 我輸入的任何搜索字符串都會返回空結果集。我能夠實現分頁,但全局搜索是一個問題。 這裏是我的代碼:PF DataTable過濾器功能不起作用

<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> 

回答

1

valuefilteredValue不應指向同一個bean屬性。 filteredValue應以另一個具有相同簽名的(初始空白)列表爲目標。

PF會將匹配過濾器的結果移動到此列表中,並且在每次撥打.filter()時清除此列表 - 因此您現在只是丟棄您的「未過濾」結果,因爲您指向相同名單。

+0

我更新了原始文章以包含您的建議。我正在閱讀的bean對象有9個字段。它仍然沒有工作。我是否需要爲filterdValue添加任何代碼?現在我在我的bean中爲filteredValue所擁有的是一個表示對象的ArrayList。 – user7517586

0

我的錯誤。我沒有在所有領域做過濾器。一旦我將過濾器添加到表中的所有字段,它就開始工作。