Extjs4 将CellEditing与ExtJS 4.0 GridPanel上的复选框选择模型相结合时,没有方法getEditor()错误

Extjs4 将CellEditing与ExtJS 4.0 GridPanel上的复选框选择模型相结合时,没有方法getEditor()错误,extjs4,Extjs4,我正在使用ExtJS4.0,并尝试将可编辑网格与复选框选择模型相结合。 问题是,当我单击复选框时,我会收到此错误消息 Uncaught TypeError: Object [object Object] has no method 'getEditor' 我很清楚,复选框列不应该被编辑(以cellediting插件的方式),因此没有getEditor功能 我尝试在CellEditing组件上定义一个beforeedit监听器,该监听器跳过colIdx=0的版本,但它甚至没有被调用,因为错误发生

我正在使用ExtJS4.0,并尝试将可编辑网格与复选框选择模型相结合。 问题是,当我单击复选框时,我会收到此错误消息

Uncaught TypeError: Object [object Object] has no method 'getEditor'
我很清楚,复选框列不应该被编辑(以cellediting插件的方式),因此没有getEditor功能

我尝试在CellEditing组件上定义一个beforeedit监听器,该监听器跳过colIdx=0的版本,但它甚至没有被调用,因为错误发生在startEditByClick方法上

因此,我的问题是,我是否应该:

a) 定义一个getEditor NO-OP函数并将其绑定到第一列?我不知道这是否可能

b) 定义一个侦听器,在调用startEditByClick函数之前触发的colIdx=0时跳过编辑?这将是什么组件的什么事件

c) 忽略javascript错误,只要它有效(:p)

这里有一些代码

var celleediting=Ext.create('Ext.grid.plugin.celleediting'{
单击编辑:1
});
Ext.define('RPV.view.aviso.AvisosList'{
扩展:“Ext.grid.Panel”,
商店:“AvisosStore”,
selModel:Ext.create('Ext.selection.CheckboxModel'),
插件:[cellEditing],
initComponent:函数(){
此值为。列=[{
标题:“NIV”,
数据索引:“niv”,
弹性:1,
可编辑:false
}, {
标题:“NCI”,
数据索引:“nci”,
弹性:1,
可编辑:false
}, {
标题:“Tipo Moviminto”,
数据索引:“tipoMovimiento”,
宽度:130,
字段:{
xtype:“组合框”,
是的,
触发动作:“全部”,
selectOnTab:对,
商店:“TipoMovimientoStore”,
lazyRender:是的,
listClass:'x-combo-list-small',
模式:“远程”,
明查斯:0,
valueField:'Description',
displayField:'Description',
emptyText:“不特别”
}
}, {
标题:“观察者”,
数据索引:“observacionesDwr”,
宽度:130,
字段:{
xtype:“组合框”,
是的,
触发动作:“全部”,
selectOnTab:对,
商店:“ObservacioneStore”,
lazyRender:是的,
模式:“远程”,
明查斯:0,
valueField:'Description',
displayField:'Description',
自动选择:false
}
}];
this.callParent(参数);
}
});
更新:找到此链接 也就是说,这是一个bug,已经在版本4.1.0中修复了。试试这个

onBeforeEditCell : function(event) {        
        if (event.column && event.column.isCheckerHd) {
            return false;
        } 

        return true;
    }

我用
var celleediting=Ext.create('Ext.grid.plugin.celleediting',{clicksToEdit:1,beforeEdit:function(event){if(event.column&&event.column.isCheckerHd){return false;}return true;}解决了这个问题但我还是会接受这个答案,因为它真的很有帮助,为我指明了正确的方向