当前位置 : 主页 > 网页制作 > Dojo >

dojo的TabContainer中增加的ContentPane如果是closable,如何在关闭后不销毁ContentPane

来源:互联网 收集:自由互联 发布时间:2021-06-15
主要思路是新建 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" 
}); 
网友评论