Entrades amb etiqueta search-container .

Search Container

Data de publicació 22/01/16 13:10

Search container es una herramienta AUI de Liferay que permite paginar datos de forma sencilla. El objetivo de este post es mostrar la estructura de Search container haciendo un ejemplo sencillo para aplicarlo.

 

Primero de todo tendremos que añadir la siguiente declaración:

<%@taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

 

Cuando queremos hacer una paginación empezamos con la etiqueta ‘liferay-ui:search-container’:

 

<liferay-ui:search-container delta="10" orderByCol="firstName" orderByType="asc" emptyResultsMessage="no-data-were-found">

</liferay-ui:search-container>

 

Los parámetros son:

  • Delta: Número de elementos por página.
  • emptyResultsMessage: Como su nombre indica, mensaje que se muestra cuando no se encuentran datos.

(Además, si queremos hacer ordenación por columnas añadiremos los siguientes parámetros)

  • orderByCol: Especifica la columna por la cuál se ordenará.
  • orderByType: Especifica el tipo de ordenación, hay disponible la ascendente (‘asc’) y descendente (‘desc’).

Etiquetas internas del Search Container

Dentro deberemos añadir las siguientes etiquetas:

liferay-ui:search-container-results

Dentro de esta etiqueta tendremos la lista de objetos, los cuáles se les hará la paginación (results) y la cantidad que hay de estos objetos (total).

 

<liferay-ui:search-container-results
        results="<%= PersonLocalServiceUtil.search(CRITERIO, searchContainer.getStart(), searchContainer.getEnd(), searchContainer.getOrderByComparator(), orderByCol,orderByType); %>"
        total="<%= PersonLocalServiceUtil.searchCount(CRITERIO); %>"
    />

 

Nota: Normalmente la paginación de objetos se muestra tras un formulario, si hay campos, por los cuáles filtrarás, los has de añadir en los parámetros de la funciones search y searchCount (que deberás crear a parte) y sustituir CRITERIO por los parámetros que necesites.
 

liferay-ui:search-container-row

En esta etiqueta tendremos la estructura de cada columna, es decir que campos se mostraran del objeto del cuál hacemos la paginación.

 

<liferay-ui:search-container-row
        className="net.sonicon.model.Person"
        keyProperty="personId"
        modelVar="person"
    >
        <liferay-ui:search-container-column-text
            name="name"
            value="<%= person.getName() %>"
        />
        <liferay-ui:search-container-column-text
            name="first-name"
            property="firstName"

            orderable="<%= true %>"

            orderableProperty="firstName"
        />
        <liferay-ui:search-container-column-text
            name="department"
            value="<%= DepartmentLocalServiceUtil

.getDepartmentByPersonID(personId).getName(); %>"

        />
    </liferay-ui:search-container-row>

Los parámetros son:

  • className: Especificas la clase del objeto que se le va ha hacer la paginación. En este caso es uno propio que hemos hecho con el 'service builder'.
  • keyProperty: Es el identificador del objecto de cada row.
  • modelVar: Es el objeto de la row.
 

Además dentro de esta etiqueta contiene N etiquetas de liferay-ui:search-container-column-text. Estas representan cada columna que se crea de la paginación.

 

En el ejemplo tenéis 3 columnas:

  • La primera: Una columna ‘Nombre’ que coje el parámetro name del objeto person.

  • La segunda: Una columna ‘Primer Nombre’ que coje el valor del parámetro especificado. Además especifica que se puede ordenar por esa columna (orderable = true) y por qué campo se ordena (orderableProperty = firstName).

  • La tercera: Una columna ‘Departamento’ que aprovecha el id del objeto person para obtener el nombre del departamento.

 

liferay-ui:search-iterator

Esta etiqueta marca donde se construirá la tabla de paginación especificada en las otras etiquetas.

 

Y con esto deberíamos tener una tabla con 3 columnas y con ordenación sobre los objetos de la clase Person.


¡Espero que os haya servido de ayuda!

 

Bloggers recents Bloggers recents

Oscar Rodríguez
Apunts: 9
Estrelles: 2
Data: 28/09/16
David Berruezo
Apunts: 14
Estrelles: 1
Data: 22/07/16
Javi Martín
Apunts: 2
Estrelles: 1
Data: 20/05/16
Javier Torres
Apunts: 5
Estrelles: 3
Data: 11/04/16
Sergi Mingueza
Apunts: 4
Estrelles: 1
Data: 19/10/15
Matilde Gallardo
Apunts: 1
Estrelles: 0
Data: 26/02/15
Adrià Vilà
Apunts: 4
Estrelles: 4
Data: 31/08/14
Elena Ruiz
Apunts: 1
Estrelles: 2
Data: 13/03/14