filas diferencia definicion columnas java gwt properties grid visible

java - diferencia - GWT Ocultar una celda de un panel de rejilla



filas y columnas diferencia (3)

Para ocultar toda la fila, puede usar:

grid.getRowFormatter().setVisible(rowIndex, false);

¿Es posible ocultar una celda completa de un Grid Panel en java GWT?

Ahora explico mi pregunta en detalle: tengo una cuadrícula con algunas etiquetas y cuadros de texto, quiero ocultar la etiqueta del medio y el cuadro de texto, pero cuando configuro la propiedad visible como falsa , oculta los 2 objetos pero deja el espacio entre 2 filas ¿Cómo puedo hacer para que esos objetos sean visibles y que los otros objetos se muevan hacia arriba para que no haya espacio en blanco entre las dos filas?

Vista de diseño GWT

http://s11.postimg.org/jc05zgjkj/gwt_grid_01.png

lblName.setVisible(false); txtbxName.setVisible(false);

Ver después de aplicar la propiedad visible a falso

http://s15.postimg.org/dnkd2927v/gwt_grid_02.png

Muchas gracias por tu ayuda


Espero que necesites ocultar el elemento del DOM: se puede hacer cambiando los elementos de la fila Mostrar la propiedad.

Código de muestra *

Grid g = new Grid(); int rowNumberToHideFromDom; g.getRowFormatter().getElement(rowNumberToHideFromDom).getStyle().setDisplay(Display.NONE);


Eche un vistazo a la tabla HTML generada en el navegador por su código GWT (preferiblemente cuando esté configurado como falso). Puede ver algo como esto:

<tbody> <!-- ... --> <tr> <!-- hidden row --> <td><!-- hidden widget --></td> <td><!-- hidden widget --></td> <td></td> <!-- The single space within the td element bears importance! --> </tr> <!-- ... --> </tbody>

El espacio vacío se rellena porque la fila oculta aún contiene uno o más elementos td que tienen un poco de espacio en blanco.

Esto se debe a la implementación del widget Cuadrícula de celdas "vacías": cuando no se establece ningún contenido en la celda de una Grilla, o se borra el contenido previamente configurado, la implementación prácticamente inserta un espacio no disruptivo (nbsp) en esa celda. (Eche un vistazo a la fuente de Grilla: addRows (), clearCell () y createCell ()).

Este comportamiento predeterminado se puede engañar estableciendo manualmente el innerHTML de las celdas vacías en una cadena vacía:

grid.setHTML(2, 3, "");

Además, supongo que la solución grid.removeRow (row) mencionada en el comentario de united también puede funcionar, aunque eliminar toda la fila es un poco más radical. Si intentas volver a mostrar la fila oculta, será mejor que resuelvas esto configurando empty cadenas en celdas vacías.