2011-06-14 81 views
1

我有這樣的代碼:ExtJS的組合框 - 選擇器不會改變

var comboStore = new Ext.data.Store({ 
proxy : new Ext.data.HttpProxy({ 
    url : '../cxf/rest/CustomerService/getGroups' 
}), 
reader : new Ext.data.JsonReader({ 
    fields : [ 'id', 'name' ] 
}), 
autoLoad : true 
}); 

var groupsCombo = new Ext.form.ComboBox({ 
name : 'GroupsCombo', 
fieldLabel : 'Groups', 
mode : 'local', 
store : comboStore, 
displayField : 'name', 
triggerAction : 'all', 
valueField : 'groupID', 
selectOnFocus:true, 
width : 130 
}); 

當頁面加載的值在組合框中成功地填充。 但是,當我試圖從組合中選擇一個值時,總是選擇第一個值。我在這裏不是以編程方式說話,但即使在瀏覽器中,也會選擇第一個值。

謝謝

+0

對不起:S 我不知道我怎麼沒注意到這一點,但在JSON數據存儲中的ID應羣ID「身份證」的istead .. 我改變了這一點,它的工作現在。 – Ticker23 2011-06-14 14:29:02

+0

添加您的答案並將其標記爲已接受,以便具有類似問題的人可以看到您如何解決它 – JamesHalsall 2011-06-15 13:37:52

+0

我想..但是有一些時間限制來回答您自己的問題 – Ticker23 2011-07-06 18:05:15

回答

1

抱歉:S我不知道我沒有注意到這一點,但Json數據存儲中的id應該是groupID istead'id'..我改變了這一點,它現在工作。

0

您是否嘗試過使用JsonStore?嘗試做這樣的事情:

var comboStore = new Ext.data.JsonStore({ 
     id: 'JsonStore', 
     idProperty: 'id', 
     autoLoad: true, 
     idProperty: 'id', 
     root: <root of your JSON>, 
     fields: [ 'id', 'name' ], 
     proxy: new Ext.data.ScriptTagProxy({ 
      api: { 
       read: '../cxf/rest/CustomerService/getGroups', 
      } 
     }) 
    }); 

然後使用它是商店爲ComboBox。 JsonStore會自動創建一個JsonReader,我認爲這是您的代碼中的衝突。