Extjs4组合框displayvalue在网格中

lys*_*obv 5 combobox extjs4

请帮忙.我想displayValue在网格中显示我的内容.我在这里找到了解决方案,但我无法理解如何使用它.我的代码:

columns:[...,{
    header: 'Product',
    id: 'combo',
    locked: true,
    dataIndex: 'prod_id',
    editor: {
        xtype: 'combobox',
        store: new Ext.data.Store({
            fields: ['value','display'],
            data: prod_list
    }),
    displayField: 'display',
    valueField: 'value'
    }
},...]
Run Code Online (Sandbox Code Playgroud)

Ext.util.Format.comboRenderer = function(combo){
    return function(value){
    var record = combo.findRecord(combo.valueField || combo.displayField, value);
        return record ? record.get(combo.displayField) : combo.valueNotFoundText;
    }
}

{
    header: '?????',
    id: 'combo',
    locked: true,
    dataIndex: 'prod_id',
    editor: MyEditor,
    renderer: Ext.util.Format.comboRenderer(MyEditor)
}
Run Code Online (Sandbox Code Playgroud)

我试图在列数组之外定义编辑器.

    var MyEditor = new Ext.form.field.ComboBox({
        store: new Ext.data.Store({
            fields: ['value','display'],
            data: prod_list
        }),
        displayField: 'display',
        valueField: 'value'
    });
Run Code Online (Sandbox Code Playgroud)

一切都很好,但我无法编辑它.问题是什么?

对不起我的英语不好.

lys*_*obv 12

var myStore = new Ext.data.Store({
    fields: ['value','display'],
    data: prod_list
});
Run Code Online (Sandbox Code Playgroud)

...

            editor: {
                xtype: 'combobox',
                store: myStore,
                displayField: 'display',
                valueField: 'value'
            },
            renderer: function(val){
                index = myStore.findExact('value',val); 
                if (index != -1){
                    rs = myStore.getAt(index).data; 
                    return rs.display; 
                }
            }
Run Code Online (Sandbox Code Playgroud)