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
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
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.