привязать событие активации к панели сетки Extjs4 - PullRequest
2 голосов
/ 21 мая 2011

Я хочу спросить, где именно я могу добавить слушателя в мою сетку. MVC

Когда я делаю это, ничего не происходит:

Ext.define('myApp.view.reslist' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.reslist',
    store : 'resStore',
    listeners: {
          activate: {
            fn: function(e){ 
                console.log('reslist panel activated');
                  }
            }
           },
    dockedItems: [{
           xtype: 'pagbar',
           store: 'resStore',
           dock: 'top',
           displayInfo: true
       }],
       ..... rest of grid configs

, и это работает с событием click:

listeners: {
          activate: {
            fn: function(e){ 
                console.log('reslist panel clicked');
                 }
          }
           }

примечание: инициализация моего контроллера все еще пуста:

Ext.define('myApp.controller.resControl', {
    extend: 'Ext.app.Controller',

    stores: ['resStore'],

    models: ['resModel'],

    views: ['reslist','pagbar'],

    init: function() {

            // nothing here 
        }
});

1 Ответ

3 голосов
/ 22 мая 2011

Действия и События представления переходит в соответствующий ему контроллер.Мои представления содержат только конфигурацию и необходимые методы, используемые для построения и рендеринга компонента.Все обработчики событий, действия над кнопками и т. Д. Находятся в контроллере.Вот как будет выглядеть мой контроллер:

Ext.define('myApp.controller.resControl', {
    extend: 'Ext.app.Controller',
    stores: ['resStore'],
    models: ['resModel'],
    views: ['reslist','pagbar'],
    init: function() {

        this.control({
            'reslist' : {
                activate: function(e) { 
                        alert('reslist panel activated');
                }               
            }
        });
    }
});

Обратите внимание, что событие активации вызывается на панели только при использовании отображения панели вкладок.Событие вызывается, когда панель активируется нажатием на вкладку.

...