Extjs Combo box - Picker не меняется - PullRequest
1 голос
/ 14 июня 2011

У меня есть этот код:

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 ]

1 голос
/ 06 июля 2011

Извините: S Я не знаю, как я этого не заметил, но id в хранилище данных Json должен быть groupID вместо 'id' .. Я изменил это, и теперь оно работает.

0 голосов
/ 22 июня 2011

Вы пробовали просто использовать 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, что, по-моему, и является причиной конфликта в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...