如何获取在Primefaces的Filtered DataTable字段中输入的值?

时间:2013-03-18 19:40:53

标签: jsf primefaces pf-datatable

我有一个数据表:

<p:dataTable id="pDataTableListaRegistros"
             var="registro"
             value="#{arquivoBean.listaRegistros}"
             paginator="true"
             rows="20"
             filteredValue="#{arquivoBean.filteredListaRegistros}"
             styleClass="tabelaCentralizada">

我想在过滤字段“Code”,“Data do Registro”和“Usuário”中输入的值来操作辅助bean。

enter image description here

2 个答案:

答案 0 :(得分:6)

您可以通过

从数据表中获取过滤器值
  1. 通过绑定或遍历树,从视图中获取对数据表的引用。通过绑定,您将拥有:

       <p:dataTable binding="#{arquivoBean.theDataTable}" id="pDataTableListaRegistros" var="registro" value="#{arquivoBean.listaRegistros}" paginator="true" rows="20" filteredValue="#{arquivoBean.filteredListaRegistros}" styleClass="tabelaCentralizada"/>
    

    在你的支持bean中:

       DataTable theDataTable = new DataTable();
       //getter and setter
    
  2. 来自绑定

       Map<String, String> theFilterValues = theDataTable.getFilters(); //This returns a map of column-filterText mapping.
    

答案 1 :(得分:1)

您可以向bean添加地图,例如:

private Map<String, Serializable> filterValues = new HashMap<>();

使用filterValue的{​​{1}}属性将值绑定到地图,例如:

p:column

此解决方案的优点是更新表时将保留这些值。