使用 4.0.6 我有一个带有 actioncolumn 的网格面板,它有两个项目,一个删除按钮和一个查看按钮。删除按钮被禁用,但在某些情况下需要启用它(如果用户是管理员)。所以我试图在代码中启用它。
这是视图:
Ext.define('PP.view.person.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.personlist',
title: 'Current people',
store: 'People',
columnLines: true,
initComponent: function () {
this.columns = [
{ header: 'Id', dataIndex: 'personId', flex: 1, sortable: true },
{ header: 'Title', dataIndex: 'title', flex: 1 },
{ header: 'Name', dataIndex: 'name', flex: 1},
{ xtype:'actioncolumn',
items:[
{icon:'cross.gif',disabled:true,handler:function(){alert('delete pressed');}},
{icon:'tick.gif',handler:function(){alert('view pressed');}}
]
}
];
this.callParent(arguments);
}
});
以及我用来启用的控制器功能:
enableDel: function () {
var view = Ext.widget('personlist');
view.down('actioncolumn').enableAction(0);
}
但我在开始的行的 extjs enableAction 函数中出现错误
me.up('tablepanel').el.select
el 未定义。该列也没有启用。谁能告诉我我做错了什么或发布一个有效的例子?如果我指定
renderTo: Ext.getBody()
在视图中我不再收到错误,但该列仍然无法启用。所以我认为这一定与渲染有关,但我对此很陌生,我不知道从哪里开始。