其主要思想是新的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" 

});

版权声明:本文博主原创文章,博客,未经同意不得转载。

04-15 01:49