Extjs 组合框在网格编辑器中保持可见

Extjs 组合框在网格编辑器中保持可见,extjs,combobox,grid,Extjs,Combobox,Grid,我在网格中有一个编辑器组合框,它只在我单击行时显示。如何使其在网格中永久可见?谢谢 如何使其在网格中永久可见 如果您使用的是ExtJS版本或更高版本,则可以使用 小部件列配置有一个小部件配置对象,该对象指定一个xtype,以指示该列单元格中属于哪种类型的小部件或组件 我已经创建了一个演示,希望这将帮助您解决问题或实现您的要求 Ext.create('Ext.data.Store', { storeId: 'simpsonsStore', fields: ['nam

我在网格中有一个编辑器组合框,它只在我单击行时显示。如何使其在网格中永久可见?谢谢

如何使其在网格中永久可见

如果您使用的是ExtJS版本或更高版本,则可以使用

小部件列配置有一个小部件配置对象,该对象指定一个xtype,以指示该列单元格中属于哪种类型的小部件或组件

我已经创建了一个演示,希望这将帮助您解决问题或实现您的要求

Ext.create('Ext.data.Store', {
        storeId: 'simpsonsStore',
        fields: ['name', 'email', 'phone', {
            name: 'checked',
            defaultValue: 'AL'
        }],
        data: [{
            name: 'Lisa',
            email: 'lisa@simpsons.com',
            phone: '555-111-1224'
        }, {
            name: 'Bart',
            email: 'bart@simpsons.com',
            phone: '555-222-1234'
        }, {
            name: 'Homer',
            email: 'homer@simpsons.com',
            phone: '555-222-1244'
        }, {
            name: 'Marge',
            email: 'marge@simpsons.com',
            phone: '555-222-1254'
        }]
    }),
    states = Ext.create('Ext.data.Store', {
        fields: ['abbr', 'name'],
        data: [{
            "abbr": "AL",
            "name": "Alabama"
        }, {
            "abbr": "AK",
            "name": "Alaska"
        }, {
            "abbr": "AZ",
            "name": "Arizona"
        }]
    });
Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [{
        text: 'Name',
        dataIndex: 'name'
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 1
    }, {
        text: 'Phone',
        dataIndex: 'phone'
    }, {
        text: 'State',
        width: 150,
        xtype: 'widgetcolumn',
        dataIndex: 'checked',
        widget: {
            xtype: 'combobox',
            flex: 1,
            emptyText: 'Select State',
            queryMode: 'local',
            displayField: 'name',
            valueField: 'abbr',
            store: states,
            listeners: {
                select: function (combo, record) {
                    Ext.Msg.alert('Success', 'Good you have selected <b>' + record.get('name') + '</b>')

                    var grid = combo.up('grid'),
                        index = grid.getView().indexOf(combo.el.up('table')),
                        record = grid.getStore().getAt(index);

                    console.log(record.getData());
                }
            }
        }
    }],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});

谢谢你是个救命恩人!。还有一件事,在我从comboBox中选择record之后,如何获取该行的记录?您可以使用comboBox的事件。选择在至少选择一个列表项时激发。是的。但它返回的是comboBox的记录,而不是Row的记录。请查看我的答案,我也有更新。谢谢您的帮助!