GWT - celltable listbox动态内容

时间:2012-08-21 23:55:56

标签: java gwt drop-down-menu listbox celltable

我有一个带有2列的小单元,名字和他拥有的汽车。其中一列(汽车)必须是列表框。 person对象将在单元格中呈现为一行。列表框将显示该人拥有的汽车的名称。 让我们说,

Person jack has 3 cars(Merc, BMW, Honda)
Person jill has 2 cars(Mini Cooper, Toyota Rav4)

我看过这个展示,它实现了一个固定类别的下拉列表。但我所拥有的是一个下拉列表,其内容将取决于Person对象的内容。

我还希望在用户选择下拉列表中的某辆车时捕获该事件。 任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

AFAIK CellWidgets不提供支持动态列表的单元格类型。
但是,您可以通过派生AbstractCell来实现自己的自定义单元格,并自行实现功能。请参阅GWT文档了解更多infos

我会尽量避免从自定义单元格内部进行后端调用。 如果可能,请尝试在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() 
    }
  }

为您的MyDTO对象添加一个getter,返回特定记录的可用类型(Honda等),并在render方法中创建一个选择框。
您可以查看SelectionCell如何正确呈现它的代码。

关于事件处理,您必须实现onBrowserEvent。有关详细信息,请参阅here