0

我有一个包含 2 列、名称和他拥有的汽车的单元格表。其中一列(汽车)必须是列表框。person 对象将在 celltable 中呈现为一行。列表框将显示该人拥有的汽车的名称。可以说,

人杰克有 3 辆车(Merc、BMW、Honda)
人吉尔有 2 辆车(Mini Cooper、Toyota Rav4)

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

我还想捕捉用户在下拉菜单中选择其中一辆车时的事件。任何想法如何做到这一点?

4

1 回答 1

0

AFAIKCellWidgets不提供支持开箱即用的动态列表的单元格类型。
但是,您可以通过自己派生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() 
    }
  }

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

关于您必须实施的事件处理onBrowserEvent。有关更多详细信息,请参见此处

于 2012-08-22T15:16:37.627 回答