0

我想将我的服务绑定到 ListBox,但我无法绑定它。
//服务类

 public class Service {
    private String serviceName;

    public Service(String serviceName) {

        this.serviceName = serviceName;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    }

// SignUpBean 类

  public class SignUpBean {
        private List<Service> services;

    public List<Service> getServices() {
        return services;
    }

    public void setServices(List<Service> services) {
        this.services = services;
    }
}

以下是我的主编辑

public class SignUpEditor extends SimplePanelimplements Editor<SignUpBean> {

    public ListBox services;
public void SignUpEditor (){
services.addItem("Service1");
    services.addItem("Service2");
setWidget(services);
}
}

我没有收到任何错误,但我认为我必须使用ListEditoror CompositeEditor。但我不知道。谁能建议如何绑定ServiceListBox

4

1 回答 1

0

ListBox 假设是一个 LeafValueEditor。从概念上讲,我们不编辑 ListBox 中的列表。相反,我们从列表中选择一个值,该值将显示在选择中。因此,ListBox 只保存一个值,因此 ListBox 必须是叶值编辑器。

目前没有 GWT 支持直接将列表绑定到 ListBox。我们必须编写一个扩展 ListEditor 的适配器(有关详细信息,请参阅 HasDataEditor 类)。这种方法很奇怪。

简单的方法是编写一个实现 LeafValueEditor< List < String >> 的适配器。在适配器的 setValue 方法中,我们应该遍历列表并为列表中的每个值调用 listBox.addItem。

我不推荐任何一种方法,因为 ListBoxLIST is NON EDITABLE并且只有VALUE is EDITABLE. 我建议在不使用编辑器的情况下手动执行 addItems。

更新:HasDataAdapter 是一个示例 ListEditor。参考那个实现。你可能会有一些想法。

于 2013-02-25T13:54:45.397 回答