Extjs4 CheckboxModel使某些特定字段可编辑
我正在为复选框列使用checkboxmodel插件。但是,我想要的是“如果我选中一列,该行的某些单元格将是可编辑的”…我搜索了很多,但没有运气。我正在使用MVC模式,因为这个插件,我不知道如何处理它Extjs4 CheckboxModel使某些特定字段可编辑,extjs4,extjs-mvc,Extjs4,Extjs Mvc,我正在为复选框列使用checkboxmodel插件。但是,我想要的是“如果我选中一列,该行的某些单元格将是可编辑的”…我搜索了很多,但没有运气。我正在使用MVC模式,因为这个插件,我不知道如何处理它 /**网格视图**/ 插件:[ Ext.create('Ext.grid.plugin.celleediting'{ 单击编辑:2 }) ], selType:'cellmodel', selModel:Ext.create('Ext.selection.CheckboxModel'{ checkO
/**网格视图**/
插件:[
Ext.create('Ext.grid.plugin.celleediting'{
单击编辑:2
})
],
selType:'cellmodel',
selModel:Ext.create('Ext.selection.CheckboxModel'{
checkOnly:对,
听众:{
选择更改:功能(型号、记录){
如果(记录[0]){
//使字段的任何单元格都可编辑
}
}
}
}),
{
标题:'name',
数据索引:'name'},
{
标题:'数量',
数据索引:'数量',
}
在这里,如果我选中任何一行,我想使网格的“数量”字段可编辑…如果有人能提供帮助,那就太好了…试试这个:
1) 创建编辑器插件实例以供参考:
var editor = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 2
});
2) 在网格插件定义中使用此实例:
plugins: [
editor
]
3) 修改selModel定义,使其看起来像这样:
selModel: Ext.create('Ext.selection.CheckboxModel', {
checkOnly: true,
listeners: {
selectionchange: function(model, records) {
if (records[0] && !editor.editing) {
editor.startEdit(records[0], 2); // 2 is the number of column you want to edit
}
}
}
}),
使用此解决方案,选中网格行时,您将只能编辑一个单元格。此外,如果选择发生变化等情况,您还需要实现额外的逻辑来停止编辑以前编辑的单元格。。。希望这个提示能对您有所帮助。由于mvc模式,我应该在何处声明var编辑器,实际上不需要在外部创建编辑器变量。您可以使用:Ext.create('Ext.grid.plugin.celleediting',{clicksToEdit:2,pluginId:'celleedit'});然后在selectionchange事件中:var editor=model.view.ownerCt.getPlugin('celledit');model.view.ownerTit中的内容将引用Ext.grid.Panel对象没有“开箱即用”的方式编辑多行。您需要自己搜索/实现多行编辑器。我将基于Ext.grid.plugin.cellbediting的源代码实现自己的Ext.grid.plugin.Editing子类,使其能够一次编辑多个单元格。