Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT-celltable列表框动态内容_Java_Gwt_Drop Down Menu_Listbox_Celltable - Fatal编程技术网

Java GWT-celltable列表框动态内容

Java GWT-celltable列表框动态内容,java,gwt,drop-down-menu,listbox,celltable,Java,Gwt,Drop Down Menu,Listbox,Celltable,我有一个有两列的手机台,名字和他拥有的汽车。其中一列(汽车)必须是列表框。 person对象将在celltable中呈现为一行。列表框将显示此人拥有的汽车的名称。 比方说 Person jack has 3 cars(Merc, BMW, Honda) Person jill has 2 cars(Mini Cooper, Toyota Rav4) 杰克有3辆车(美世、宝马、本田) 吉尔有两辆车(迷你库珀、丰田Rav4) 我看过showcase,它实现了一个带有固定类别的下拉列表。但我有一个下拉

我有一个有两列的手机台,名字和他拥有的汽车。其中一列(汽车)必须是列表框。 person对象将在celltable中呈现为一行。列表框将显示此人拥有的汽车的名称。 比方说

Person jack has 3 cars(Merc, BMW, Honda) Person jill has 2 cars(Mini Cooper, Toyota Rav4) 杰克有3辆车(美世、宝马、本田) 吉尔有两辆车(迷你库珀、丰田Rav4) 我看过showcase,它实现了一个带有固定类别的下拉列表。但我有一个下拉列表,它的内容将取决于Person对象的内容

我还想捕获当用户在下拉列表中选择一辆车时的事件。
有什么办法吗?

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() 
    }
  }
公共类DynamicSelectionCell扩展了AbstractCell{
@凌驾
公共void呈现(上下文上下文、MyDTO值、SafeHtmlBuilder sb){
如果(值==null){
返回;
}
//呈现selectionbox并通过访问值动态添加选项。GetAvailableOptions()
}
}
将getter添加到
MyDTO
对象,该对象返回特定记录的可用类型(Honda等),在呈现方法中,您只需创建一个selectionbox。
您可以查看有关如何正确渲染的代码


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

这是一个重复的问题。在此处找到答案-[[1]: