ExtJS编辑器网格内的自定义编辑控件

ExtJS编辑器网格内的自定义编辑控件,extjs,Extjs,有问题,需要你的建议 我刚开始写一个编辑网格。我将实际使用这个网格作为搜索过滤器编辑器,即带有条件名称、运算符和值的列。 现在,对于值字段,我想为不同的行使用不同的编辑控件。例如,当一个条件类型是string时,我想显示一个文本框,当它是date-time时,我想显示一个datetime编辑器。 事实上,我需要在编辑开始之前控制编辑控件的创建/显示。行之间应该有所不同。与我发现的示例不同,这些示例针对列是固定的 为了实现这一点,你们能建议我需要做的步骤吗?如果你们中有人能给我指点路的话,我大概能

有问题,需要你的建议

我刚开始写一个编辑网格。我将实际使用这个网格作为搜索过滤器编辑器,即带有条件名称、运算符和值的列。 现在,对于值字段,我想为不同的行使用不同的编辑控件。例如,当一个条件类型是string时,我想显示一个文本框,当它是date-time时,我想显示一个datetime编辑器。 事实上,我需要在编辑开始之前控制编辑控件的创建/显示。行之间应该有所不同。与我发现的示例不同,这些示例针对列是固定的

为了实现这一点,你们能建议我需要做的步骤吗?如果你们中有人能给我指点路的话,我大概能想出来


感谢并致以最诚挚的问候

在editorgrid的“配置”部分,您需要定义自定义编辑器:


实际上,您可以通过根据所处的列动态返回不同的编辑器和渲染来轻松实现这一点。在ColumnModel对象中,可以定义如下内容。请注意,我将获得每个记录的type属性以确定其类型。我有一个包含所有不同类型编辑器的对象,渲染器也是如此,然后根据类型为该单元格提供不同的编辑器或渲染器

editors: { 'default': {xtype:'textfield'},
           texttype: {xtype:'textfield'},
           numbertype: {xtype:'numberfield'},
           combotype: {xtype:'combo'}....... etc. } 

getCellEditor: function(colIndex, rowIndex) {
            var store = Ext.getCmp('mygrid').getStore();
            var field = this.getDataIndex(colIndex);
            var rec = store.getAt(rowIndex);
            var type = rec.get('type');
            if (type in this.editors) {
                return this.editors[type];
            } else {
                return this.editors['default'];
            }

        },

使用此网格配置-以选择整行:

selType: 'rowmodel'

谢谢你的友好回复。但是你没有回答我的问题,对于每一行,我可能需要不同的编辑器控件。不像你在这里展示的那样。这不是列,而是行。对不起,伙计,我肯定误读了这个问题。我不确定在不嵌套数据网格或使用多个网格的情况下如何实现这一点。问题在于,列模型需要在网格中的所有行中保持一致。
selType: 'rowmodel'