with showcase example editable columns jsf primefaces pf-datatable

jsf - example - primefaces showcase



¿Cómo obtener los valores ingresados ​​en el campo DataTable filtrado de Primefaces? (2)

Tengo una tabla de datos:

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

Me gustaría obtener los valores ingresados ​​en los campos de filtro "Código", "Datos do Registro" y "Usuário" para manipularlos en un bean de respaldo.


Puede obtener el valor de filtro de la tabla de datos por

  1. Obtenga una referencia a la tabla de datos de la vista vinculando o caminando el árbol. Al vincular, tendrás:

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

    Y en tu bean de respaldo:

    DataTable theDataTable = new DataTable(); //getter and setter

  2. De la unión

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


Puede agregar un mapa a su bean, como:

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

Y vincula los valores al mapa usando el atributo filterValue de p:column , por ejemplo:

<p:column headerText="Name" sortBy="#{item.name}" filterBy="#{item.name}" filterMatchMode="contains" filterValue="#{yourBean.filterValues[''name'']}"> <h:outputText value="#{item.name}" /> </p:column>

La ventaja de esta solución es que los valores se mantendrán cuando actualice su tabla.