2

如何在 GXT 中使用 SimpleComboBox 使用键/值对。我可以向 SimpleComboBox 添加一个键,但是如何将特定键的值添加到 SimpleComboBox?稍后我想检索键的值。谢谢和问候,阿南德

4

2 回答 2

1

在 SimpleComboBox 中拥有键/值的简单方法是使用 BaseModel 类型的 ListStore。BaseModel 允许您将数据保存为键/值,如下所示:

SimpleComboBox combo = new SimpleComboBox();
ListStore<BaseModel> store = new ListStore<BaseModel>();

combo.setStore(store);
combo.setDisplayField("name");
// complete the SimpleComboBox properties here.

// Now, we will create data sample for the answer
BaseModel model = new BaseModel();
model.set("id", 1);
model.set("name", "Java");
store.add(model);

BaseModel model = new BaseModel();
model.set("id", 2);
model.set("name", "PHP");
store.add(model);

正如您从代码片段中看到的,BaseModel 将数据存储为键/值对,因此您可以轻松地从 SimpleComboBox 中获取所选元素,例如:

BaseModel selectedModel = (BaseModel) combo.getValue();
String techName = selectedModel.get("name"); // return value of key name
于 2014-07-14T11:42:34.737 回答
0

// MySimpleComboBox extends SimpleComboBox
public MySimpleComboBox(){
    super(new ListStore<Person>(new ModelKeyProvider<Person>() {
        @Override
        public String getKey(Person item) {
            return item.id();
        }
    }), new LabelProvider<Person>() {
        @Override
        public String getLabel(Person item) {
            return item.toString();
        }
    });
}

一旦我认为这是您正在寻找的东西(或您正在寻找的东西),我就这样做了。

于 2014-06-24T20:50:35.890 回答