1

ExtJS v3.3.1 で ajax ベースのタブパネルのロード/更新イベントにイベント リスナーを追加する方法はありますか? タブが選択/アクティブ化され、読み込みスピナーが表示された直後ではなく、タブのコンテンツが取得されて完全にレンダリングされた後に発生するイベントが必要です。

getUpdater()タブパネルのメソッドによって返される Ext.Updater オブジェクトにこのイベントを追加できると思いました。

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'); 
});  
4

2 に答える 2

2

最後にそれを理解しました。TabPanel の各項目の "autoLoad" 構成オブジェクトのプロパティが、実際には Ext.Updater.update() メソッドのパラメーターとして使用されているだけだということに気付きませんでした。だから私がしなければならなかったのは、「url」と「scripts」パラメータと一緒に、「callback」プロパティを、タブコンテンツが本体へのロードを完了したときに実行される関数として定義することだけでした。

于 2011-06-07T17:47:18.910 に答える
0

これを試しましたか?

myTabs.on("afterrender", function() {
    console.log('tab loaded');
});
于 2011-06-06T20:42:12.443 に答える