0

我有一个在一列上有组合框的网格。数据在网格上加载良好。但是当我双击一行以启用编辑时,组合框不显示数据。(请参见下面的屏幕截图)突出显示的部分应显示“第一个标签”。但是当我开始编辑时,它会显示在带有“第二个标签”的第二行。

我在 4.1 上尝试了我的代码,它工作正常。似乎 4.2.2 不喜欢网格内的组合框。非常感谢任何帮助

在此处输入图像描述

这是我的示例代码。请在 Sencha 的代码编辑器上试用,以查看 4.2.2 和 4.1.0

        Ext.define('GridModel', {
        extend: 'Ext.data.Model',
        fields: [{
            name: 'Id',
            type: 'int'
        }, {
            name: 'Value',
            type: 'int'
        }]
    });

    Ext.define('ComboModel', {
        extend: 'Ext.data.Model',
        fields: [{
            name: 'ComboId',
            type: 'int'
        }, {
            name: 'Label',
            type: 'string'
        }],
        idProperty: 'Order'
    });

    Ext.create('Ext.data.Store', {
        storeId: 'comboStore',
        model: 'ComboModel',
        data: [{
            ComboId: 1,
            Label: '1st Label'
        }, {
            ComboId: 2,
            Label: '2nd Label'
        }]
    });

    Ext.create('Ext.data.Store', {
        storeId: 'gridStore',
        model: 'GridModel',
        data: [{
            Id: 1,
            Value: 1
        }, {
            Id: 2,
            Value: 2
        }, {
            Id: 3,
            Value: 1
        }, {
            Id: 4,
            Value: 2
        }]
    });

    Ext.create('Ext.grid.Panel', {
        width: 400,
        height: 200,
        renderTo: 'ct',
        plugins: [
            Ext.create('Ext.grid.plugin.RowEditing', {
                clicksToEdit: 2,
                listeners: {
                    edit: function(editor, e) {
                        console.log(gridStore.getModifiedRecords());
                    }
                }
            })
        ],
        store: Ext.data.StoreManager.lookup('gridStore'),
        forceFit: true,
        columns: [{
            dataIndex: 'Id',
            header: 'ID'
        }, {
            dataIndex: 'Value',
            header: 'Label',
            editor: {
                xtype: 'combobox',
                displayField: 'Label',
                valueField: 'ComboId',
                queryMode: 'local',
                store: Ext.data.StoreManager.lookup('comboStore'),
                allowBlank: true
            },
            renderer: function(value) {
                var rec = comboStore.getById(value);
                return rec ? rec.get('Label') : value;
            }
        }],
        renderTo: Ext.getBody()
    });
4

0 回答 0