Shashwat
Shashwat

Reputation: 2668

Removing a tab from tabPanel

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

I'm trying to remove all the tabs (except the first one) from the tabPanel. This code is doing that. I checked it using firebug.
But still, it is not reflecting in the UI. Isn't doLayout() enough?

Upvotes: 3

Views: 8018

Answers (2)

Mauro Bilotti
Mauro Bilotti

Reputation: 6242

This closes a tab by clicking the middle button of your mouse.

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

Hope it helps!! =)

Upvotes: 0

Ruan Mendes
Ruan Mendes

Reputation: 92274

Instead of calling

tabPanel.items.removeAt(i);

Call

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

Then you're telling the container instead of the mixed collection to remove the tab

Another way to do it is

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

Upvotes: 4

Related Questions