2011-08-03 9 views
0

gwt 2.3を使用しています。これはUIバインダーを使用しています。私はこれでUIBinderを使ってグリッドを作成したいと思います。このため私はこのコードを書いています。私のデータは、私はUiBinderサンプルメッセージを使用してグリッドを作成したい、そのデータに応じて、サーバ側&から来る場合 ダイナミックにUIBinderを使用するには?

<g:Grid ui:field='mygrid' addStyleNames='{style.panel}' 
      cellSpacing='10'> 
      <g:row> 
       <g:customCell> 
        <g:Label text="11" styleName="{style.label}" /> 
       </g:customCell> 
       <g:customCell> 
        <g:Label text="22" styleName="{style.label}" /> 
       </g:customCell> 
      </g:row> 
      <g:row> 
       <g:customCell> 
        <g:Label text="33" styleName="{style.label}" /> 
       </g:customCell> 
       <g:customCell> 
        <g:Label text="44" styleName="{style.label}" /> 
       </g:customCell> 
      </g:row> 
     </g:Grid> 

は今ここに、グリッドの私のデータは、場合static.Nowです。これはどのように可能ですか?

もう1つのケース。フォームがあります。コントロールの数からはデータベースから来ています。 UIBiderはこのフォームの作成をどのようにサポートしていますか?制御の回数は毎回変わる可能性があります。

実行時データに応じてUIBinderを使用することができます。

何か提案や評価があります。

答えて

1

UiBinderはJavaScriptとHTMLコードに対して「クロスコンパイル」されています。それが完了したら、それを変更することはできません。 XML構文をクライアントに送信してから、グリッドを作成するようなことをする方法があります。

ただし、「コードビハインド」に新しい行を追加することは可能です。あなたの2番目の質問については

:はい、あなたは、JavaからUiBinderサンプルメッセージにデータを追加することができますP

+0

"ただし、"コードビハインド "に新しい行を追加することは可能です。"これは、データに応じて、最初にui.xmlにグリッドを、gwt(.java)クラスに行数を定義することを意味しますか? –

+0

はい。私はそれが最良の解決策ではないことを知っていますが、私はまだそれのためにUiBinderを使用します。スタイルや「テーブルデザイン」に「タイトルラベル」などの新しいウィジェットを追加するのは簡単です。 – Stefan

1

:私はあなたが何を意味するか見当がつかない。 EclipseでUIBinderを作成すると、このXML用の.javaファイルも作成されました。この対応するJavaファイルを編集して、このようなものを追加します。

public class MyGridSample extends Composite { 
    // uiBinder interface declaration... 
    private static MyGridSampleUiBinderUiBinder uiBinder = GWT.create(MyGridSampleUiBinder.class); 

    interface MyGridSampleUiBinder extends UiBinder<Widget, MyGridSample > { 
    } 

    // annotation to get ui-field into code 
    @UiField 
    Grid mygrid; 

    public MyGridSample() { 
     setWidget(uiBinder.createAndBindUi(this)); 
     // sets cell 0,0 with label 
     mygrid.setWidget(0, 0, new Label("cell 0")); 
    } 
} 

GWTはクライアント側のフレームワークであるとUiBinderサンプルメッセージは、JavaScriptファイルとしてプリコンパイルされた - 彼らは静的ファイルとして提供しています。このテンプレートにデータを取得するには、Webサービス呼び出しを行う必要があります。

関連する問題