2011-01-23 18 views
6

HTMLPanelには<table>が含まれています。 Javaコードから<tr>を表示/非表示にしたいとします。GWT - 表示/非表示

他のHTMLPanelの中​​に<tr>を入れてパネルを非表示にしようとしました。このような何か:

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

コード:

name.setVisible(false); 

、それは動作しますが、それはプレゼンテーションの奇妙な行動を引き起こします。

どうすればいいですか?

Thx a lot !!!

答えて

9

@UiField TreeRowElement rowNameのHTMLは...<tr ui:field="rowName">...</tr>...です。次に、TreeRowElementを使用して、その行を表示/非表示にします。

の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::expandmeは(EXアンカー、ボタン、あなたがクリックハンドラを添付することができます任意の要素である

<tr ui:field="expanded"> 

@Tassos解答時に拡大

+1

こんにちは、私はあなたがこの場合、どのように表示/非表示の要素をTableRowElementを意味すると思いますか?それはsetVisibleメソッドを持っていません... thxたくさん – david

+2

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

+0

こんにちはTassos、そうです!、私はgetStyleメソッドを探して誓うことができます。 ...とにかくたくさんのthxを!!!! – david

5

など)

+0

clearDisplay()は便利でした。そうしないと、表の行が非表示/表示後に最初の幅を覚えていませんでした(BLOCKまたはINLINEに再度設定しても機能しません)。ありがとう! – joscarsson

+0

@sjakubowski 'clearDisplay()'ありがとう! – eugene82