Reputation: 2668
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
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
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