从tabPanel中删除选项卡

时间:2012-04-27 06:01:34

标签: javascript extjs4 tabpanel

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()足够了?

2 个答案:

答案 0 :(得分:4)

而不是打电话

tabPanel.items.removeAt(i);

呼叫

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

然后你告诉容器而不是混合集合来删除选项卡

另一种方法是

tabPanel.removeChildEls(function(tab){
  return tab != tabPanel.items.first();
});

答案 1 :(得分: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;
    });

希望它有所帮助!! =)