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.