Search code examples
extjsextjs6-classic

How to use record from renderer function as store for combo inside editor ExtJs Grid


I have a grid with with cell editing plugin:

Ext.define('MyGrid', {
    extend: 'Ext.grid.Panel',        
    title: 'MyGrid',
    emptyText: __('no_data'),        
    plugins: {
        ptype: 'cellediting',
        clicksToEdit: 1
    },
    columns: [
        {
            text: 'Email',
            dataIndex: 'email',
            editor: {
                xtype: 'combo',
                queryMode: 'local'
            },
            renderer: function(value) {
                // this I wont to use value as store combo
                return value;
            }
        }
    ]
});

Value in renderer function is an array. How to use it as store in combo inside editor?


Solution

  • I solved my problem by using widget column with combobox.

    {
                xtype: 'widgetcolumn',
                flex: 1,
                text: 'Email',
                editor: {},
                widget: {
                    xtype: 'combo',
                    queryMode: 'local',
                    displayField: 'email',
                    valueField: 'email',
                    editable: false,
                    value: 0,
                    listeners: {
                        afterrender: 'afterComboEmailRender',
                        change: 'onComboEmailChange'
                    }
                }
            }
    

    And I dynamically set store from cell record to combo after it render.