ExtJS AJAX TabPanel событие загрузки вкладки? - PullRequest
1 голос
/ 07 июня 2011

Есть ли способ добавить прослушиватель событий к событию загрузки / обновления панели управления на основе ajax в ExtJS v3.3.1? Мне нужно событие, которое запускается после того, как содержимое вкладки извлечено и полностью обработано, а не сразу после выбора / активации вкладки и отображения счетчика загрузки.

Я думал, что смогу добавить это событие в объект Ext.Updater, возвращаемый методом tabUpel getUpdater (), т.е.

myTabs.getUpdater().on('update', function()
{
    console.log('tab loaded');
});

Но это, похоже, не работает. Есть идеи?

Редактировать: Вот моя полная реализация, чтобы мне было проще увидеть, что я пытаюсь сделать:

var myTabs = new Ext.TabPanel( 
{ 
    id : 'rec_tabs', 
    activeTab : 0,    
    enableTabScroll : true, 
    padding : 5, 
    autoWidth : false, 
    autoHeight : true, 
    border : false, 
    plain : true, 
    defaults : { autoHeight: true }, 
    items : 
    [ 
        { title : 'Tab #1',  autoLoad : { url : 'tab1_content.php', scripts : true } }, 
        ... 
    ] 
}); 

myTabs.render('tab_div'); 

myTabs.getUpdater().on('update', function() 
{ 
    console.log('tab loaded'); 
});  

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Наконец-то разобрался. Я не осознавал, что свойства объекта конфигурации «autoLoad» для каждого элемента TabPanel на самом деле просто используются в качестве параметров для метода Ext.Updater.update (). Итак, все, что мне нужно было сделать, это вместе с параметрами «url» и «scripts», определить свойство «callback» как функцию, которая будет выполняться после завершения загрузки содержимого вкладки в ее тело, и ее можно использовать.

0 голосов
/ 07 июня 2011

Вы пробовали это?

myTabs.on("afterrender", function() {
    console.log('tab loaded');
});
...