我可以阻止单击网格单元格上的复选框吗?
这是我的专栏:
{
header: 'Select',
dataIndex: 'indexSelect',
width: 75,
xtype: 'checkcolumn',
renderer: this.CheckColumn_CheckStatus,
}
并且我正在尝试使用渲染器来禁用或隐藏复选框:
CheckColumn_CheckStatus: function (value, metaData, record, rowIndex, colIndex, store)
{
//do something
}
如果我没有返回任何内容甚至返回一个空字符串,则该复选框不会在UI上呈现,但仍然可以选中它。
有什么想法吗?
答案 0 :(得分:1)
你可以简单地从beforecheckchange
听众中返回错误等等。
如果您正在使用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...
}