0

我使用编辑器选项在 extjs 中设计网格。我需要组合框作为一列,当我编辑网格时也需要组合框。我需要删除列作为编辑和普通网格的复选框列。它不工作。谁能帮帮我吗

这是片段:

this.mcmGridPanel = new Ext.grid.GridPanel({
            height: 300,
            width: 690,
            title: 'Results',
            store: store,
            multiSelect: true,
            x: 0,
            y: 170,
            columns: [
                { xtype: 'gridcolumn', text: 'FlightNumber', sortable: true, flex: 1, width: 150, dataIndex: 'FlightNumber', hidden: true,
                    editor: new Ext.form.field.ComboBox({
                                typeAhead: true,
                                triggerAction: 'all',
                                selectOnTab: true,
                                lazyRender: true,
                                listClass: 'x-combo-list-small'
                            })  
                },
                { xtype: 'gridcolumn', text: 'Origin',  sortable: true, width: 150, dataIndex: 'Origin',
                    editor: {
                        editor: new Ext.form.field.ComboBox({
                            typeAhead: true,
                            triggerAction: 'all',
                            selectOnTab: true,
                            lazyRender: true,
                            listClass: 'x-combo-list-small'
                        })  
                    }
                },  
                { xtype: 'gridcolumn', text: 'Destination',  sortable: true, width: 150, dataIndex: 'Destination',
                    editor: {
                        editor: new Ext.form.field.ComboBox({
                            typeAhead: true,
                            triggerAction: 'all',
                            selectOnTab: true,
                            lazyRender: true,
                            listClass: 'x-combo-list-small'
                        })  
                    }
                },  

                { xtype: 'datecolumn', text: 'StartDate', width: 80, dataIndex: 'StartAvailability', format: 'Y-m-d',
                    editor: {
                        xtype: 'datefield',
                        allowBlank: false,
                        format: 'Y-m-d'
                    }
                },
                { header: 'StartTime', text: 'StartTime', width: 60, dataIndex: 'StartAvailabilityTime',  
                    editor: {
                        xtype: 'timefield',
                        format: 'H:i',
                        increment: 15,
                        allowBlank: false
                    }
                },
                { xtype: 'datecolumn', text: 'EndDate', width: 80, dataIndex: 'EndAvailability', format: 'Y-m-d',  
                    editor: {
                        xtype: 'datefield',
                        allowBlank: false,
                        format: 'Y-m-d'
                    }
                },
                { header: 'EndTime', text: 'EndTime', width: 60, dataIndex: 'EndAvailabilityTime',
                    editor: {
                        xtype: 'timefield',
                        format: 'H:i',
                        increment: 15,
                        allowBlank: false
                    }
                },
                {
                    xtype: 'gridcolumn',
                    text: 'Delete?',
                    header: 'Delete?',
                    dataIndex: 'delete',
                    width: 60,
                    renderer: function (value, meta, record, rowIndex, colIndex) {
                        return '<center><input type="checkbox" id="Delete-' + rowIndex + '"/></center>';
                    },
                    handler: function() {

                    },
                    //disabled: true,
                    editor: {
                        xtype: 'checkbox',
                        cls: 'x-grid-checkheader-editor',
                    }

                }
            ]
            });

我使用以下代码,但它不起作用。谁能帮帮我吗

4

1 回答 1

0

我没有看到应该显示组合框的功能。为了让它自动工作,你应该添加 RowEditing 插件。

尝试添加这个

plugins: [
    Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToMoveEditor: 1,
        autoCancel: false
    })
],

查看文档中的这个示例。这将帮助您进行行编辑工作。

你的列定义好吗?
我有一个使用它的组合框,但我知道这不是所需的完整配置:

{
    dataIndex: 'name',
    flex: 1,
    text: 'Name',
    field: {
        xtype: 'combobox'
    },
}

更新

我今天遇到了类似的问题:我的文本字段没有呈现。

罪魁祸首出乎意料:
我使用的是自定义模板,显示所需的 css 规则丢失了。我所要做的就是使用 sencha cmd 重建应用程序sencha app build。这样就完成了模板的文件,并且正确显示了roweditor的字段。

很有可能你也是这种情况......

于 2013-10-16T04:36:02.950 回答