1

我可以防止单击网格单元格上的复选框吗?

这是我的专栏:

{
    header: 'Select',
    dataIndex: 'indexSelect',
    width: 75,
    xtype: 'checkcolumn',
    renderer: this.CheckColumn_CheckStatus,
}

我正在尝试使用渲染器使复选框禁用或不可见:

CheckColumn_CheckStatus: function (value, metaData, record, rowIndex, colIndex, store) 
{
   //do something
}

如果我不返回任何内容甚至返回空字符串,则该复选框不会在 UI 上呈现,但仍可以选中它。

有任何想法吗?

4

1 回答 1

1

您可以简单地从beforecheckchange侦听器返回 false 例如

如果您使用的是 MVC 模式,只需将其包含在您的控制器中:

'yourgridpanel checkcolumn': {

    beforecheckchange: function(column, index) {
        var user = Ext.getStore('User').first();

        // I was doing this if a user doesn't have permission but
        // if you want to stop all edits you can just return false
        // without the "if" statement
        if (!user || !user.get('edit_permission')) {
            return false; // cancels checkchange event
        }
    }
}

如果您不使用 MVC 模式,您可以将侦听器附加到列本身(我假设您要取消此示例中的所有检查更改):

{
    header: 'Select',
    dataIndex: 'indexSelect',
    width: 75,
    xtype: 'checkcolumn',
    listeners: {
        beforecheckchange: function() {
            return false; // cancels all checkchanges
        }
    }
}, {
    // another column definition, etc...
}
于 2012-10-04T20:36:38.100 回答