2011-01-23 1 views
6

Ho un HTMLPanel con un <table> all'interno. Voglio mostrare/nascondere un <tr> dal codice java.GWT - mostra/nascondi <tr> in un HTMLPanel

Ho provato a inserire lo <tr> all'interno di altro HTMLPanel e a nascondere il Pannello. Qualcosa di simile a questo:

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

:

name.setVisible(false); 

e funziona, ma provoca uno strano comportamento nella presentazione.

Come posso fare questo ???

Thx molto !!!

risposta

9

Utilizzare un @UiField TreeRowElement rowName con codice HTML ...<tr ui:field="rowName">...</tr>.... Quindi utilizzare TreeRowElement per mostrare/nascondere quella riga.

+1

Ciao, immagino tu intenda TableRowElement, in questo caso, come mostro/nascondi l'elemento? non ha il metodo setVisible ... thx molto – david

+2

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

+0

Hi Tassos, hai ragione !, posso giurare che ho cercato il metodo getStyle. ... comunque grazie mille !!!! – david

5

espansione su @Tassos risposta:

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"> 

Dove expandme è un qualsiasi elemento che è possibile allegare un gestore di clic per, (ex Ancora, pulsante , ecc.)

+0

clearDisplay() era utile, altrimenti la riga della tabella non ricordava la sua larghezza iniziale dopo un hide/show (semplicemente impostandolo su BLOCK o INLINE di nuovo non funzionava). Grazie! – joscarsson

+0

@sjakubowski Grazie per il 'clearDisplay()'! – eugene82