2011-01-23 12 views
6

Tengo un HTMLPanel con un <table> dentro. Quiero mostrar/ocultar un <tr> desde el código java.GWT - mostrar/ocultar <tr> en un HTMLPanel

Intenté poner el <tr> dentro de otro HTMLPanel y ocultar el Panel. Algo como esto:

... 
<tr> 
    ... 
</tr> 
<g:HTMLPanel ui:field="name"> 
    <tr> 
    ... 
    </tr> 
</g:HTMLPanel> 
<tr> 
    ... 
</tr> 

código:

name.setVisible(false); 

y funciona, pero causa un comportamiento extraño en la presentación.

¿Cómo podría hacer esto?

¡Muchas gracias!

Respuesta

9

Utilice @UiField TreeRowElement rowName con el código HTML ...<tr ui:field="rowName">...</tr>.... Luego use TreeRowElement para mostrar/ocultar esa fila.

+1

Hola, me refiero a TableRowElement, en este caso, ¿cómo muestro/oculto el elemento? no tiene el método setVisible ... thx mucho – david

+2

Prueba 'rowName.getStyle(). setDisplay (Display.NONE);' –

+0

Hola Tassos, tienes razón! Puedo jurar que busqué el método getStyle. ... de todos modos, ¡mucho! – david

5

Ampliando @Tassos respuesta:

Java

@UiField TableRowElement expanded; 

boolean exp=false; 

    expandme.addClickHandler(new ClickHandler() { 
     public void onClick(ClickEvent clickevent) { 
      if(exp){ 
       expanded.getStyle().setDisplay(Display.NONE); 
      } else { 
       expanded.getStyle().clearDisplay(); //took a little while to find. 
      } 
      exp = !exp; 
     } 
    }); 

HTML:

<tr ui:field="expanded"> 

Dónde expandme es cualquier elemento que se puede adjuntar un controlador de clic a, (ex ancla, Botón , etc.)

+0

clearDisplay() fue útil, de lo contrario la fila de la tabla no recordaba su ancho inicial después de ocultar/mostrar (simplemente configurarlo en BLOQUE o INLINE nuevamente no funcionó). ¡Gracias! – joscarsson

+0

@sjakubowski ¡Gracias por el 'clearDisplay()'! – eugene82