Extjs4 将CellEditing与ExtJS 4.0 GridPanel上的复选框选择模型相结合时,没有方法getEditor()错误
我正在使用ExtJS4.0,并尝试将可编辑网格与复选框选择模型相结合。 问题是,当我单击复选框时,我会收到此错误消息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的版本,但它甚至没有被调用,因为错误发生
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;}解决了这个问题代码>但我还是会接受这个答案,因为它真的很有帮助,为我指明了正确的方向