您可以通过以下方式从数据表中获取过滤值:
<p:dataTable binding="#{arquivoBean.theDataTable}" id="pDataTableListaRegistros" var="registro" value="#{arquivoBean.listaRegistros}" paginator="true" rows="20" filteredValue="#{arquivoBean.filteredListaRegistros}" styleClass="tabelaCentralizada"/>
在你的支持豆中:
DataTable theDataTable = new DataTable();
//getter and setter
Map<String, String> theFilterValues = theDataTable.getFilters(); //This returns a map of column-filterText mapping.
private Map<String, Serializable> filterValues = new HashMap<>();
并使用 filterValue
的
p:column
属性将值绑定到地图,例如:
<p:column headerText="Name"
sortBy="#{item.name}"
filterBy="#{item.name}"
filterMatchMode="contains"
filterValue="#{yourBean.filterValues['name']}">
#{item.name}
</p:column>
此解决方案的优点是,当您更新表时,这些值将被保留。