Extjs4 itemId, как вернуть редактор колонок в выпадающем списке - PullRequest
0 голосов
/ 31 января 2012

Я пытаюсь конвертировать некоторые ExtJS 3.3 в 4.0.В ExtJS 3.x я мог создать комбинированный список с уникальным идентификатором компонента, который позже мог бы использовать с Ext.getCmp (Id), чтобы получить этот комбинированный редактор, чтобы я мог добавлять фильтры или играть с самим комбинированным полем.

Теперь, если я указываю Id, сетка не отображает корректно поле со списком в сетке, они говорят, что вместо этого я должен использовать itemId, тогда на самом деле это работает, я имею в виду, что комбо правильно отображает в сетке, нотогда я не могу использовать этот itemId для получения самого комбобокса.

Я попробовал grid.getComponent (itemId), grid.headerCt.getComponent (), я должен сказать, для чего этот itemId хорошКак же я должен получить этот редактор.

Сетка grid.columns имеет редактор для простых полей (таких как текст, число), для комбинированного списка есть getEditor, который запрашивает запись данных в качестве параметра.

Я должен сказать еще раз wtf,с ExtJS 3.x было так плохо, что они чувствовали, что исправляют и е ... его.

На самом деле, это обновление заставляло меня так много раз повторяться ... возможно, это моя вина, но именно это... в любом случае.

{
    header: 'Ürün/Hizmet',
    width: 90,
    dataIndex: 'AlinanHizmetId',
    editor: {
        itemId: 'AlinanHizmetId',
        xtype: 'combobox',
        allowBlank: false,
        selectOnFocus: true,
        valueField: 'Id',
        displayField: 'HizmetAd',
        triggerAction: 'all',
        typeAhead: false,
        forceSelection: true,
        lazyRender: true,
        minChars: '2',
        listWidth: 300,
        store: Ext.create('Ext.data.Store', {
            storeId: '',
            fields: [{
                name: 'HizmetTipAd',
                caption: 'Hizmet Tip Adı',
                type: Ext.data.Types.STRING,
                clrType: 'String'
            }, {
                name: 'Id',
                caption: 'Id',
                type: Ext.data.Types.STRING,
                clrType: 'Guid'
            }, {
                name: 'HizmetTip',
                caption: 'HizmetTip',
                type: Ext.data.Types.STRING,
                clrType: 'String'
            }, {
                name: 'HizmetKod',
                caption: 'Hizmet Kodu',
                type: Ext.data.Types.STRING,
                clrType: 'String'
            }, {
                name: 'HizmetAd',
                caption: 'Hizmet Adı',
                type: Ext.data.Types.STRING,
                clrType: 'String'
            }, {
                name: 'Aciklama',
                caption: 'Açıklama',
                type: Ext.data.Types.STRING,
                clrType: 'String'
            }],
            autoDestroy: false,
            autoLoad: true,
            autoSave: false,
            sortInfo: {
                field: 'HizmetAd',
                direction: 'ASC'
            },
            restful: false,
            proxy: {
                type: 'ajax',
                actionMethods: {
                    read: 'POST'
                },
                url: '/Yol/Combo/AlinanHizmet',
                reader: {
                    type: 'json',
                    root: 'data',
                    idProperty: 'Id',
                    totalProperty: 'rowCount',
                    successProperty: 'success',
                    messageProperty: 'message'
                }
            },
            data: []
        })
    },
    filter: {
        xtype: 'textfield'
    },
    renderer: function (value, metaData, record, rowIndex, colIndex, store) {
        return record.get('HizmetAd');
    }
}

Ответы [ 2 ]

0 голосов
/ 26 марта 2012
mygrid.on('beforeedit', function(e){
    if(e.field == 'ProductId') {
      var gridCols = Ext.getCmp('my_grid').columns;
      for(i = 0; i < gridCols.length; i++)
          if (gridCols[i].dataIndex == 'ProductId') break;
      var combo = gridCols[i].getEditor(e.record);
    ...

, поэтому фактически column.getEditor (null) делает свое дело.

0 голосов
/ 23 марта 2012

Это старый - но вы пробовали grid.down('#item_id')?

...