在 extjs 4.2.1 中禁用整个列

Disabling entire column in extjs 4.2.1

我有一个简单的多列网格和每列可编辑字段。当我调用 column.disable() 时,只有列的 header 被禁用,列中的字段仍然可编辑。如何禁用列中的所有字段?

您必须在呈现 editor 后调用 disable 方法。 我使用 beforeedit 事件来禁用我的字段 例如:

beforeedit: function (editor, context) {
    ...
    editor.editor.down('onetomanyeditor').disable()
    ...
},

结合 beforeedit 事件处理程序,您可以使用渲染器更改单元格的 tdStyle 以指示它已禁用:

renderer: function(value, meta, record, rowIdx, colIdx, store, view) {
    var column = this.getHeaderContainer().getHeaderAtIndex(colIdx);
    if (column.disabled) {
        meta.tdStyle = "opacity: 0.4;";
    }

    return value;
}

tdCls 更好,可以对外观进行更精细的调整。