Установка значения с сервера в ComboBox в ExtJS - PullRequest
0 голосов
/ 22 марта 2011

Я использую DataStore с JsonReader для заполнения ComboBox, но правильное значение не помечается как выбранное.

ComboBox:

{
    fieldLabel: 'Business Unit',
    xtype:'combo',
    width:167,
    name: 'business_Unit',
    hiddenName: 'businessUnit',
    store: businessUnitStore,
    displayField: 'buName',
    valueField: 'buId',
    mode: 'remote',
    triggerAction: 'all',
    typeAhead: false,
    editable: false
}

, и я использую JsonReader вмоя форма

var leadReader = new Ext.data.JsonReader({
    root: 'data',
    totalProperty: 'total',
    id: 'leadId'

}, [
    {name:'title', type: 'string'},
    {name:'firstName', type: 'string'},
    {name:'lastName', type: 'string'},
    {name:'designation', type: 'string'},
    {name:'business_Unit', type: 'string', mapping: 'businessUnit.buName'},
]);

Это ответ JSON:

{"data":{"leadId":22,"firstName":"fname","lastName":"lname","designation":"President","businessUnit":{"buId":4,"buName":"US","buDescription":""}},"success":true}

Я хочу, чтобы BusinessUnit = US был выбран в поле со списком, а также чтобы все другие параметры были доступны для выбора в комбинированном списке при загрузкеформа.

editForm.getForm().load({url:fetchUrl, method: 'GET'});

Все отлично работает, за исключением того, что BusinessUnit = US не выбран в комбо.

1 Ответ

0 голосов
/ 22 марта 2011

Поле имени в комбо не совпадает с полем в ответе json (business_Unit vs businessUnit), но я также не думаю, что BasicForm.load будет работать с вложенными объектами. После вызова загрузки вам, возможно, придется загрузить его вручную.

editForm.getForm().load({url: fetchUrl, method: 'GET', success: function(form, action) {
        var combo = form.findField('business_Unit');
        combo.setValue(action.result.data.businessUnit.buiId);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...