0

私は彼が所有する名前と車の2つの列を持つセルテーブルを持っています。列(車)の1つはリストボックスである必要があります。人物オブジェクトは、セルテーブルの行としてレンダリングされます。リストボックスには、その人が所有する車の名前が表示されます。まあ言ってみれば、

パーソンジャックは3台(メルク、BMW、ホンダ)
人ジルは2台の車を持っています(ミニクーパー、トヨタRav4)

私はショーケースを見てきました、そしてそれは固定されたカテゴリーでドロップダウンを実装します。しかし、私が持っているのはドロップダウンであり、その内容はPersonオブジェクトの内容に依存します。

また、ユーザーがドロップダウンで車の1台を選択するイベントをキャプチャしたいと思います。これを行う方法はありますか?

4

1 に答える 1

0

AFAIKは、すぐにCellWidgets使用できる動的リストをサポートするセルタイプを提供していません。ただし、機能を自分で
派生して実装することにより、独自のカスタムセルを実装できます。AbstractCell詳細については、GWTドキュメントを参照してください

カスタムセル内からバックエンド呼び出しを行わないようにします。可能であれば、使用可能なタイプのリストをDTOに追加してから、renderメソッドからそのプロパティにアクセスしてみてください。これらの線に沿った何か:

public class DynamicSelectionCell extends AbstractCell<MyDTO> {


    @Override
    public void render(Context context, MyDTO value, SafeHtmlBuilder sb) {

      if (value == null) {
        return;
      }
       // render a selectionbox and dynamically add options by accessing the value.getAvailablOptions() 
    }
  }

特定のレコードで使用可能なタイプ(Hondaなど)を返すゲッターをMyDTOオブジェクトに追加し、renderメソッドで選択ボックスを作成するだけです。SelectionCell
のコードをチェックして、適切にレンダリングする方法を確認できます。

イベント処理に関しては、実装する必要がありますonBrowserEvent。詳細については、こちらをご覧ください。

于 2012-08-22T15:16:37.627 に答える