Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Extjs: события в ответ на все изменения контейнера панели и его компонентов

Автор вопроса: SimonОтветов: 1

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

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

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

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

scrollresizeextjs

Ответы

Ответ 1 · рейтинг 1 · sra

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

Изменить: вот простой пример. Просто напечатано и не проверено. Но это покажет вам трюк.

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 ...
      }
   }
};

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы