我有一个带有多个过滤器的数据表,用于后端过滤。在Primefaces 7.0中,一切正常,但是更新到8.0之后,所有过滤器似乎都使用了xhtml端最后定义的过滤器。
所有cloumns看起来都只是这种过滤功能不同的方法:
<p:column filterBy="#{variant}" headerText="source"
filterFunction="#{variantBean.filterBySource}"
style="padding-top: 7px;">
<f:facet name="filter">
<p:selectCheckboxMenu id="menu2" value="#{variantBean.selectedSources}" label="Select many"
filter="true" filterMatchMode="startsWith"
onchange="PF('dataTable').filter()" multiple="true">
<f:selectItems value="#{variantBean.sourceList}" var="externalSource"
itemValue="#{externalSource.toString()}"/>
</p:selectCheckboxMenu>
</f:facet>
<h:outputText value="#{variantBean.getExternalSources(variant)}"/>
</p:column>
例如,如果我有3个具有filterFunction值的variantBean.filterby1,columnBean.filterby2和variantBean.filterby3的列,则与我使用哪个无关。在后端,它总是放在filterBy3中,但filter = null。
public boolean filterBy3 (Object value, Object filter, Locale locale) {
...
}
我不知道我需要做些什么才能使其像7.0之前一样在8.0中运行。有什么想法吗?