【发布时间】:2016-12-30 12:15:58
【问题描述】:
我正在使用带有过滤器和分页的 p:datatable。两者都可以单独工作,但如果我先过滤然后移到结果的第二页,过滤器将被删除,我看到的是原始数据集的第二页。这是我的桌子的样子:
<p:dataTable value="#{bean.products}" var="product"
paginator="true" paginatorPosition="bottom" rows="5"
filteredValue="#{bean.filteredProducts}"
rowKey="#{product.prdctId}">
<p:ajax event="sort" skipChildren="false" />
<p:column headerText="Description" filterBy="#{product.description}" filterMatchMode="contains"
sortBy="#{product.prdctId}">
<h:outputText value="#{product.description}" />
</p:column>
(other columns)
</p:dataTable>
有什么想法吗?
使用 Primefaces 5.2、JSF 2.0.3
编辑:经过一番搜索,我发现another post 处理同样的问题,但从未得到答复。
【问题讨论】:
-
使用全局过滤器对其进行了测试,并且可以正常工作。我没有特定于国家/地区的过滤器
-
我猜处理列过滤器的逻辑有问题。我升级到 PF 6.0 并验证问题仍然可以重现。根据showcase example,将我的表更改为延迟加载并使用自定义数据模型确实有效。不理想,因为我正在处理的数据集已经被缓存,因此我不需要延迟加载,但它可以工作并且没有明显的性能差异。
-
@bendicott 那么也许需要将其标记为重复?
标签: jsf-2 primefaces filter datatable pagination