Если бы кто-нибудь мог мне помочь в этом. У меня есть панель дерева, чьи узлы при щелчке загружают вкладку в панель вкладок.Ext JS Tab Panel - динамические вкладки - вкладка не работает
Вкладки загружаются хорошо, но моя проблема заключается в дублировании. Мне нужно проверить, существует ли вкладка, прежде чем добавлять ее в панель вкладок. Кажется, я не могу это решить, и я ем свои мозги. Это довольно просто, и я проверил stackoverflow и EXT JS Forums для решений, но они, похоже, не работают для меня, или я слепой.
Это мой код для дерева:
var opstree = new Ext.tree.TreePanel({ renderTo: 'opstree', border:false, width: 250, height: 'auto', useArrows: false, animate: true, autoScroll: true, dataUrl: 'libs/tree-data.json', root: { nodeType: 'async', text: 'Tool Actions' }, listeners: { render: function() { this.getRootNode().expand(); } } }) opstree.on('click', function(n){ var sn = this.selModel.selNode || {}; // selNode is null on initial selection renderPage(n.id); }); function renderPage(tabId) { var TabPanel = Ext.getCmp('content-tab-panel'); var tab = TabPanel.getItem(tabId); //Ext.MessageBox.alert('TabGet',tab); if(tab){ TabPanel.setActiveTab(tabId); } else{ TabPanel.add({ title: tabId, html: 'Tab Body ' + (tabId) + '
', closable:true }).show(); TabPanel.doLayout(); } } });
и это код Tab Panel
new Ext.TabPanel({
id:'content-tab-panel',
region: 'center',
deferredRender: false,
enableTabScroll:true,
activeTab: 0,
items: [{
contentEl: 'about',
title: 'About the Billing Ops Application',
closable: true,
autoScroll: true,
margins: '0 0 0 0'
},{
contentEl: 'welcomescreen',
title: 'PBRT Application Home',
closable: false,
autoScroll: true,
margins: '0 0 0 0'
}]
})
Может кто-нибудь, пожалуйста, помогите?
Я там был слепой. Я думал, что я добавил идентификатор узла в качестве идентификатора созданной вкладки, но я этого не сделал. Спасибо, что указал на Джонатана. Это сработало для меня. –