我正在实现一个网格面板,其中最后四列可编辑为大多数行.问题是我希望能够禁用编辑,假设第一个如果record.get('status')= 4,那么最终确定并且只有两列可以编辑.
有没有办法禁用显示这些行的编辑?我可以使用CellEditing来做,但想继续使用RowEditing插件.
此致,克里斯蒂安
Mol*_*Man 38
使用beforeedit事件:
grid.on('beforeedit', function(editor, e) {
if (e.colIdx === 0 && e.record.get('status') == 4)
return false;
});
Run Code Online (Sandbox Code Playgroud)
更新
上面的解决方案不适用于rowEditor.
但是,您可以禁用所需的字段beforeedit.为此,您应该能够访问rowediting插件.将pluginId分配给插件:
plugins: [
Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit: 1,
pluginId: 'rowEditing'
})
],
Run Code Online (Sandbox Code Playgroud)
现在,如果满足某些条件,则禁用所需字段:
grid.on('beforeedit', function(editor, e) {
if (e.record.get('status') === 4 ){
grid.getPlugin('rowEditing').editor.form.findField('fieldToDisable').disable();
}
else{
grid.getPlugin('rowEditing').editor.form.findField('fieldToDisable').enable();
});
Run Code Online (Sandbox Code Playgroud)
这是demo(尝试编辑第一行).
编辑
如果上面的JSFiddle不起作用,请尝试更新版本.