ExtJS 4: Изменить данные в выпадающем списке (celleditor) - PullRequest
0 голосов
/ 29 февраля 2012

Я использую Ext.form.field.Combobox в качестве редактора ячеек на панели сетки:

product: {
    xtype         : "anypartfiltercombobox",
    id            : "product-editor",
    store         : new Ext.data.Store({
        model: "Product",
        data: APP.feedbacks.aUserProducts
    }),
    displayField  : "name",
    valueField    : "id",
    queryMode     : "local",
    emptyText     : "Select game",
    allowBlank    : false,
    forceSelection: true,
    listeners     : {
        select: this._onProductChanged
    }
},
device: {
    xtype         : "anypartfiltercombobox",
    id            : "device-editor",
    store         : Ext.create("stores.Devices", {
        storeId: "device-editor-store",
        data   : APP.feedbacks.aProductDevices
    }),
    displayField  : "name",
    valueField    : "id",
    queryMode     : "local",
    emptyText     : "Select device",
    allowBlank    : false,
    autoRender    : true,
    forceSelection: true
}

В stores.Devices магазине У меня есть метод loadByProduct(), который следует использовать путем изменения значения в product редактор.

Таким образом, источник this._onProductChanged:

_onProductChanged = function(oField)
{
    var iProductId = +oField.getValue(),
    oDevicesEditor = Ext.getCmp("device-editor");

    oDevicesEditor.store.loadByProduct(iProductId);
    // Ext.StoresManager.lookUp("device-editor-sore").loadByProduct(iProductId);
}

Поэтому, когда я сначала изменяю значение product-editor (device-editor еще не было активировано) в _onProductChanged У меня есть undefined для Ext.getCmp("device-editor").

Но если device-editor уже открыто, а затем я меняю продукт, то все работает правильно.

КстатиЯ также пытался получить хранилище, используя StoresManager и новые загрузки данных, но в этом случае хранилище содержит новые значения, а выпадающий список показывает старые элементы.

Кто-нибудь может мне помочь с решением?

Спасибо,Андрей.

1 Ответ

1 голос
/ 29 февраля 2012

Попробуйте использовать метод Ext.grid.column.Column.getEditor вместо поиска редактора по идентификатору. Этот метод должен создать редактор, если он еще не создан.

...