grid – ExtJS 4 RowEditing根据记录在一列上禁用编辑 - 代码日志

grid – ExtJS 4 RowEditing根据记录在一列上禁用编辑

我正在实施一个网格面板,最后四列可以为大多数行编辑。问题是我想要禁用编辑,如果record.get(‘status’)= 4,那么最后一个是最后的,只有两列可以编辑。

有没有办法禁用显示这些行的编辑?我可以使用CellEditing来做,但是想继续使用RowEditing插件。

问候,
克里斯蒂安

使用beforeedit事件:

grid.on('beforeedit', function(editor, e) {
  if (e.colIdx === 0 && e.record.get('status') == 4)
    return false;
});

UPDATE
上面的解决方案不适用于rowEditor。
但是,您可以在beforedit之前禁用所需字段。为此,您应该可以访问rowediting插件。将pluginId分配给插件:

plugins: [
    Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToEdit: 1,
        pluginId: 'rowEditing'
    })
],

现在,如果满足某些条件,则禁用所需字段:

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();
   });

这是demo(尝试编辑第一行)。

编辑

如果上述JSFiddle不起作用,请尝试its updated version

http://stackoverflow.com/questions/7679364/extjs-4-rowediting-disable-edit-on-one-column-based-on-record

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:grid – ExtJS 4 RowEditing根据记录在一列上禁用编辑