Extjs组合框 - 选择器不会改变

时间:2011-06-14 14:20:12

标签: 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
});

加载页面时,会在组合框中成功填充值。 但是,当我尝试从组合中选择一个值时,始终会选择第一个值。我不是在这里以编程方式说话,但即使在浏览器上,也会选择第一个值。

由于

2 个答案:

答案 0 :(得分:1)

抱歉:我不知道我怎么没注意到这一点,但是Json数据存储中的id应该是groupID而不是'id'..我改了这个,它现在正在工作。

答案 1 :(得分: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的Store。 JsonStore自动创建一个JsonReader,我认为这是代码中的冲突所在。