Foros del Web » Programación para mayores de 30 ;) » Java »

Modificar dinámicamente el estilo de las columnas de un displaytag

Estas en el tema de Modificar dinámicamente el estilo de las columnas de un displaytag en el foro de Java en Foros del Web. Hola a todos. Tengo una JSP en la que se encuentra desplegada una tabla mediante displaytag, que expone una serie de datos. El problema que ...
  #1 (permalink)  
Antiguo 31/08/2011, 00:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Modificar dinámicamente el estilo de las columnas de un displaytag

Hola a todos.

Tengo una JSP en la que se encuentra desplegada una tabla mediante displaytag, que expone una serie de datos.

El problema que tengo es que necesito alterar dinámicamente el estilo de esas columnas en función de algunos de los datos concretos de los objetos que estoy mostrando.

Hasta ahora se venía haciendo mediante la introducción de un div con estilo propio intercalado en el dato, pero esto me impide mantener formatos de fecha y numéricos en los datos expuestos para poder ordenarlos, que es otro de los requisitos.

¿Alguna idea o sugerencia para resolver esto?
  #2 (permalink)  
Antiguo 01/09/2011, 06:06
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Modificar dinámicamente el estilo de las columnas de un displaytag

Finalmente logré encontrar y aplicar con éxito un ejemplo similar a lo que yo necesitaba.

La solución se basa en la descrita en la siguiente dirección: http://demo.displaytag.org/displayta...-rowclass.jsp#

Para compartirla con el resto de la comunidad, voy a dar una breve explicación de como funcionaría:

Básicamente se trata de asignar una id y una class a mayores a los elementos <tr> odd y even generados automáticamente por displaytag.

Para ello, primero se debe crear una instancia de la clase org.displaytag.decorator.TableDecorator() que contenga los métodos addRowClass() y addRowId(), como se puede ver al pulsar en el botón view source de la parte superior derecha de la página.

Dentro de estos métodos lo único que se debe hacer es poner las condiciones para que se seleccione uno u otro nombre para la clase extra a añadir, o para la id. Lo que se retorna como parámetro es el nombre de la clase o de la id, que el propio displaytag se encargará de añadir por detrás.

Cuando se tenga instanciado, se asocia el decorator al display:table y se configurn en la css correspondiente los estilos de las nuevas clases/ids para los elementos <tr>.

Si todo está correcto, debería funcionar.

En el caso de ejemplo se usan objetos de la clase TestList y ListObject, que son propios del código de ejemplo. En nuestros casos usaremos Collections o ArrayList y objetos de clases personalizadas que tengamos en nuestros proyectos, pero la idea es la misma.

Esto permitirá obtener los estilos de colores, resaltar datos, etc manteniendo formatos numéricos y de fechas en los datos del displaytag.

Espero que el método haya quedado suficiente explicado y quien tenga necesidad de recurrir a esto pueda hacerlo con facilidad. Un saludo.

Etiquetas: columnas, displaytag, estilo, jsp, modificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:44.