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>
答案 0 :(得分:1)
您的value
和filteredValue
不应指向相同的bean属性。 filteredValue
应该使用相同的签名定位另一个(初始空的)列表。
PF会将与过滤器匹配的结果移动到此列表中,并在每次调用.filter()
时清除此列表 - 因此您只是暂时丢弃“未过滤”的结果,因为您指向到同一个名单。
答案 1 :(得分:0)
我的错误。我没有对所有字段进行过滤。一旦我将过滤器添加到表的所有字段,它就开始工作了。