2013-02-23 50 views
2

如何在GXT中使用SimpleComboBox使用鍵/值對。我可以將一個鍵添加到SimpleComboBox,但是如何將特定鍵的值添加到SimpleComboBox? 後來我想檢索密鑰的值。 感謝&問候, 阿南德GXT中的SimpleComboBox

+0

是鍵和值爲什麼不使用ComboBox?使用ModelData上SimpleComboBOX – swamy 2013-02-26 12:00:54

+0

symaltaneously出現,您可以定義鍵和值的字段。 – 2013-03-01 17:54:31

+0

@Anand您應該始終指定您正在使用的GXT版本。從GXT 2到GXT 3有很多變化。'RadAsm'的答案是用於GXT 3,'Ahmed'用於GXT 2 – 2014-07-15 06:42:58

回答

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(); 
     } 
    }); 
} 

我做了,一旦我覺得這是你要找的內容(或者你正在尋找)。

1

在SimpleComboBox中擁有鍵/值的簡單方法是使用帶有BaseModel類型的ListStore。 BaseModel允許你保存數據的key/value像以下:

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