Filtrar desde el list.xhtml
Last updated
Was this helpful?
Last updated
Was this helpful?
Cuando deseamos hacer filtros para el list.xhml
Para filtrar por entity referenciado que es integer, el el move tenemos que invocar el método findPagination.
<b:panel title="#{app['label.search']}" id="content">
<!--<b:panelGrid colSpans="2,10" size="xs">-->
<b:panelGrid colSpans="1,4,1,6" columns="4" size="xs">
<p:outputLabel value="#{msg['field.cedula']}"/>
<e:autocompletecliente listener="#{clienteController.handleSelect}"
value="#{clienteController.clienteSelected}"
itemLabel=" #{p.cedula}"
field="cedula"
update=" :form:dataTable"/>
<p:outputLabel value="#{msg['field.nombre']}"/>
<e:autocompletecliente listener="#{clienteController.handleSelect}"
value="#{clienteController.clienteSelected}"
itemLabel=" #{p.nombre}"
field="nombre"
size="40"
update=" :form:dataTable"/>
</b:panelGrid>
<b:row>
<b:column medium-screen="4">
<a:search label="#{msg['field.idcliente']}"
value="#{clienteController.lookupStoreejbServices.idcliente}"
renderedList="#{applicationMenu.articulo.list}"
search="#{clienteController.searchBy('idcliente')}"
/>
</b:column>
<b:column medium-screen="8">
<a:search label="#{msg['field.nombre']}"
value="#{marcaController.lookupStoreejbServices.nombre}"
renderedList="#{applicationMenu.articulo.list}"
search="#{clienteController.searchBy('nombre')}"
/>
</b:column>
<b:column medium-screen="8">
<p:outputLabel value="#{msg['field.clasificacioncliente']}"/>
<e:autocompleteclasificacioncliente listener="#{clienteController.searchBy('clasificacioncliente')}"
value="#{clienteController.lookupStoreejbServices.clasificacioncliente}"
itemLabel="#{p.descripcion}"
dropdown="true"
required="true"
minQueryLength="0"
field="descripcion"
update=" :form:dataTable" />
</b:column>
</b:row>
</b:panel>
searchBy()
// <editor-fold defaultstate="collapsed" desc="searchBy(String string)">
@Override
public String searchBy(String string) {
try {
loginController.put("searchcliente", string);
writable = true;
move();
} catch (Exception e) {
JsfUtil.errorMessage("searchBy()" + e.getLocalizedMessage());
}
return "";
}// </editor-fold>
move()
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchcliente")) {
case "_init":
clienteList = clienteRepository.findPagination(page, rowPage);
break;
case "_autocomplete":
//no se realiza ninguna accion
break;
case "idcliente":
doc = new Document("idcliente", lookupStoreejbServices.getIdcliente());
clienteList = clienteRepository.findBy(doc);
break;
case "nombre":
clienteList = clienteRepository.findRegexInTextPagination("nombre", lookupStoreejbServices.getNombre(), true, page, rowPage, new Document("nombre", -1));
break;
case "clasificacioncliente":
doc = new Document("clasificiacioncliente.idclasificacioncliente",lookupStoreejbServices.getClasificacioncliente().getIdclasificacioncliente());
clienteList = clienteRepository.findPagination( page, rowPage, doc,new Document("nombre", -1));
break;
default:
clienteList = clienteRepository.findPagination(page, rowPage);
break;
}
clienteFiltered = clienteList;
clienteDataModel = new ClienteDataModel(clienteList);
} catch (Exception e) {
JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
}
}// </editor-fold>