Используя 4.0.6, у меня есть сеточная панель с колонкой action, в которой есть два элемента: кнопка удаления и кнопка просмотра. Кнопка удаления отключена, но в некоторых случаях ее необходимо включить (если пользователь является администратором). Поэтому я пытаюсь включить его в коде.
Вот вид:
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);
}
но я получаю сообщение об ошибке в функции enableAction extjs в строке, которая начинается
me.up('tablepanel').el.select
эль не определена. Столбец тоже не включается. Может кто-нибудь сказать мне, что я делаю неправильно или опубликовать пример, который работает? Если я укажу
renderTo: Ext.getBody()
в представлении я больше не получаю сообщение об ошибке, но столбец по-прежнему не включается. Поэтому я думаю, что это как-то связано с рендерингом, но я настолько новичок в этом, что понятия не имею, с чего начать.