Вопрос:

ExtJS grid: обработка события нажатия на столбец действия в контроллере

extjs extjs4.2

10899 просмотра

1 ответ

870 Репутация автора

У меня есть представление «EmployeeList». Внутри него есть сетка. Мне нужно обработать событие click actioncolumn из контроллера. Вот мнение:

Ext.define('ExtApp.view.Employees', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.employees',
.
.
.
.
.
});

Это представление содержит сетку:

xtype: 'grid',
columns:[{
.
.
.
.
xtype: 'actioncolumn',
                text: 'Delete',
                width: 100,
                items: [{
                    icon: 'images/deleteEmployee.jpg',
                    tooltip: 'Delete'
                }]
}]

Как мне обработать событие click actioncolumn в моем контроллере?

Вот код контроллера:

Ext.define('ExtApp.controller.Employees', {
    extend: 'Ext.app.Controller',
    refs: [{
        ref: 'employees',
        selector: 'employees'
    }],
    init: function () {
        //reference for the grid's actioncolumn needed here

    }
});
Автор: user1640256 Источник Размещён: 21.01.2015 12:11

Ответы (1)


8 плюса

4246 Репутация автора

Решение

Если вы хотите обрабатывать клики с помощью вашего контроллера, вам нужно добавить обработчик в вашу колонку действий следующим образом:

xtype:'actioncolumn',
width:50,
items: [{
    icon: 'extjs/examples/shared/icons/fam/cog_edit.png',  // Use a URL in the icon config
    tooltip: 'Edit',
    handler: function(view, rowIndex, colIndex, item, e, record, row) {
        this.fireEvent('itemClick', view, rowIndex, colIndex, item, e, record, row, 'edit');
    }
}]

А затем добавьте обработчик событий в свой контроллер для события itemClick

init: function() {
    this.control({
         'actioncolumn': {
             itemClick: this.onActionColumnItemClick
         }
     });
},
onActionColumnItemClick : function(view, rowIndex, colIndex, item, e, record, row, action) {
    alert(action + " user " + record.get('firstname'));
}

И вы должны увидеть, как это работает, возитесь здесь: https://fiddle.sencha.com/#fiddle/grb

Автор: Guilherme Lopes Размещён: 21.01.2015 03:02
Вопросы из категории :
32x32