主要思路是新建 TabContainer的扩展类,重载其 closeChild属性,使得其在关闭子容器时,不调用该子容器的 destroyRecursive方法。 define([ "dojo/_base/declare", "dijit/layout/TabContainer" ], function(declare
主要思路是新建TabContainer的扩展类,重载其closeChild属性,使得其在关闭子容器时,不调用该子容器的destroyRecursive方法。
define([ "dojo/_base/declare", "dijit/layout/TabContainer"
], function(declare,TabContainer) {return declare("comm.comm.ExTabContainer", TabContainer, {
closeChildAction:"destroy",
closeChild: function(/*dijit/_WidgetBase*/ page){
// summary:
// Callback when user clicks the [X] to remove a page.
// If onClose() returns true then remove and destroy the child.
// tags:
// private
var remove = page.onClose && page.onClose(this, page);
if(remove){
this.removeChild(page);
if (this.closeChildAction=="destroy"){
// makes sure we can clean up executeScripts in ContentPane onUnLoad
page.destroyRecursive();
}
}
}
});
});
然后创建TabContainer的方法如下:
var tc=new ExTabContainer({
style : "height: 100%; width: 100%;",
isLayoutContainer : true,
region : 'center',
closeChildAction:"hide"
});