Vistas de página en total

jueves, 11 de diciembre de 2014

Busqueda avanzada o por filtros

Modificaremos el listado de los usuarios ya tenemos que nos muestre la informacion detallada de cada uno al seleccionar y hacer click al boton ahora solo vamos a buscar ya sea por nombre, apellido paterno y apellido materno que son las basicas para alguna busqueda asi que creamos una variable de tipo list al managebBean que estamos utilizando y sus metodos getters y setters

private List<Usuarios> listByFilterUser;

Los metodos van a ir hasta abajo simplemente por darle un orden de acuerdo

 public List<Usuarios> getListByFilterUser() {
        return listByFilterUser;
    }
    public void setListByFilterUser(List<Usuarios> listByFilterUser) {
        this.listByFilterUser = listByFilterUser;
    }

Y nuevamente agregamos otra funcion al dataTable que es filteredValue que es el valor filtrado que esta en el mangedBean de acuerdo y al column agreamos otra funcion filterBy que es "filtrar por" de acuerdo al campo donde se ponga sera la busqueda de filtracion miren el ejemplo:

           <h2>Lista de usuarios</h2>
                <h:form id="formListAll">
                    <p:growl id="msjgral" showDetail="true" sticky="false" />
                    <p:dataTable id="tableListAll" var="item" value="#{managedBeanUser.all}" paginator="true" rows="5" rowsPerPageTemplate="10, 20, 30, 40, 50, 60, 70, 80, 90, 100"
                                 selection="#{managedBeanUser.user}" selectionMode="single" rowKey="#{item.idusuarios}" filteredValue="#{managedBeanUser.listByFilterUser}">
                        <f:facet name="header">
                            Lista de Usuarios
                        </f:facet>
                        <p:column headerText="Nombre" filterBy="nombres">
                            <h:outputText value="#{item.nombres}"/>
                        </p:column>
                        <p:column headerText="Apellido Materno" filterBy="ap">
                            <h:outputText value="#{item.ap}"/>
                        </p:column>
                        <p:column headerText="Apellido Paterno" filterBy="am">
                            <h:outputText value="#{item.am}"/>
                        </p:column>
                        <p:column headerText="E-mail">
                            <h:outputText value="#{item.email}"/>
                        </p:column>
                        <f:facet name="footer">
                            <p:commandButton process="tableListAll" update=":formListAll:usersDetail" icon="ui-icon-search" value="Ver" oncomplete="PF('ty').show()" />
                        </f:facet>
                    </p:dataTable>
                   
                    <p:dialog header="Informacion de Usuario" widgetVar="ty" modal="true" showEffect="explode" hideEffect="explode" resizable="false">
                        <p:outputPanel id="usersDetail" style="text-align:center;">
                            <h:panelGrid  columns="2">
                                <p:outputLabel value="Nombre"/>
                                <h:outputText value="#{managedBeanUser.user.nombres}" />
                                <p:outputLabel value="Apellido Paterno"/>
                                <h:outputText value="#{managedBeanUser.user.ap}" />
                                <p:outputLabel value="Apellido Materno"/>
                                <h:outputText value="#{managedBeanUser.user.am}" />
                                <p:outputLabel value="Email"/>
                                <h:outputText value="#{managedBeanUser.user.email}" />
                                <p:outputLabel value="Direccion"/>
                                <h:outputText value="#{managedBeanUser.user.direccion}" />
                                <p:outputLabel value="Fecha de Nacimiento"/>
                                <h:outputText value="#{managedBeanUser.user.fechaNacimiento}" />
                                <p:outputLabel value="Sexo"/>
                                <h:outputText value="#{managedBeanUser.user.sexo}" />
                            </h:panelGrid>
                        </p:outputPanel>
                    </p:dialog>
                </h:form>

Y quedaria asi:


No hay comentarios:

Publicar un comentario