var tabPanel = Ext.getCmp('tabPanel');
for(var i=1; i<tabPanel.items.length; i++)
{
    tabPanel.items.removeAt(i);
    i--;
}
tabPanel.doLayout();
我正在尝试从 tabPanel 中删除所有选项卡(第一个选项卡除外)。这段代码就是这样做的。我用萤火虫检查了它。
但是,它仍然没有反映在 UI 中。doLayout() 还不够吗?
var tabPanel = Ext.getCmp('tabPanel');
for(var i=1; i<tabPanel.items.length; i++)
{
    tabPanel.items.removeAt(i);
    i--;
}
tabPanel.doLayout();
我正在尝试从 tabPanel 中删除所有选项卡(第一个选项卡除外)。这段代码就是这样做的。我用萤火虫检查了它。
但是,它仍然没有反映在 UI 中。doLayout() 还不够吗?
而不是打电话
tabPanel.items.removeAt(i);
称呼
tabPanel.remove(tabPanel.items.getAt(i));
然后你告诉容器而不是混合集合来删除标签
另一种方法是
tabPanel.removeChildEls(function(tab){
  return tab != tabPanel.items.first();
});
    这将通过单击鼠标中键关闭选项卡。
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;
    });
希望能帮助到你!!=)