extjs: события в ответ на все изменения контейнера панели и его компонентов - PullRequest
0 голосов
/ 09 мая 2011

У меня есть панель с конфигурацией «autoscroll: true», и она содержит складные наборы полей.У меня есть график, который будет перерисован на основе изменений в этой панели, а также из ее компонентов.

Что я хочу сделать, так это отобрать все эти события «изменения», чтобы правильно настроить графикв соответствии с расположением компонентов панели.

Я думаю, что мне нужно захватить два типа событий:

1) прокрутка панели

здесь, как я могу вызвать "afterscorll "событие когда панель прокрутки заканчивается?я использовал: Ext.getCmp ("XX"). body.on (afterScroll ', function () {});но не работает.

2) fieldset развернуть / свернуть

и мне также интересно, существует ли единое событие для захвата этих изменений независимо от прокрутки или развертывания / сворачивания наборов полей на этой панели?тогда мне нужно будет позвонить только один раз.

1 Ответ

1 голос
/ 10 мая 2011

Я не знаю, правильно ли я вас понял; Вы можете пузырить события до родителя. Я делаю это во многих ситуациях, например, с событием изменения поля в форме.

Edit: Вот простой пример. Просто набрано и не проверено. Но это покажет трюк.

MappingDialog = function(){
   return {
      init : function(){
         dialog = new Ext.Window({
            width:     200,
            height:    150,
            modal:     true,
            closable:  false,
            bubbleEvents: ['saveMapping'], // <- Array with events
            buttons: [{
               text:'Save',
               handler:function(){ this.fireEvent('saveMapping'); }
            }],
            listeners: {
               saveMapping : function() { // should not be called }
            }
         });

         this.addListener('saveMapping', this.saveData, this); // <- Attaching event to Parent (or hand through)
      },
      saveData : function(){ // <- implement eventhandling
         ... Save the data ...
      }
   }
};
...