3
var tabPanel = Ext.getCmp('tabPanel');
for(var i=1; i<tabPanel.items.length; i++)
{
    tabPanel.items.removeAt(i);
    i--;
}
tabPanel.doLayout();

tabPanel からすべてのタブ (最初のタブを除く) を削除しようとしています。このコードはそれを行っています。firebugで確認しました。
それでもUIには反映されません。doLayout() で十分ではありませんか?

4

2 に答える 2

4

呼び出す代わりに

tabPanel.items.removeAt(i);

電話

tabPanel.remove(tabPanel.items.getAt(i));

次に、混合コレクションではなくコンテナにタブを削除するように指示しています

それを行う別の方法は

tabPanel.removeChildEls(function(tab){
  return tab != tabPanel.items.first();
});
于 2012-04-27T06:12:30.877 に答える
0

これは、マウスの中ボタンをクリックしてタブを閉じます。

var middleClick = $(document).mousedown(function(e) {
    if(e.which == 2){
              var tabPanel = <%= tabPanel.ClientID %>;    
              var activeTab = tabPanel.getActiveTab();
              if (e.target.textContent == activeTab.title) {
                  var activeTabIndex = tabPanel.items.findIndex('id', activeTab.id);
                  tabPanel.remove(activeTabIndex);
              }
          }
          return true;
    });

それが役に立てば幸い!!=)

于 2014-07-17T14:18:28.443 に答える