微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决Dojo Grid 在TabContainer中的不显示或者刷新错误问题

修改TabContainer.js文件,在dijit.layout.TabController中添加函数onButtonClick,大功告成!

当然这个方法有点代价有点高,如果只是为了单独解决Grid问题,可以直接each一下Grid,修改一下就可以。

dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{
        // summary:
        //      Set of tabs (the things with titles and a close button,that you click to show a tab panel).
        // description:
        //      Lets the user select the currently shown pane in a TabContainer or StackContainer.
        //      TabController also monitors the TabContainer,and whenever a pane is
        //      added or deleted updates itself accordingly.

        templateString: "
 
 
",// tabPosition: String // Defines where tabs go relative to the content. // "top","bottom","left-h","right-h" tabPosition: "top",// doLayout: Boolean // TodoC: deprecate doLayout? not sure. doLayout: true,// buttonWidget: String // The name of the tab widget to create to correspond to each page buttonWidget: "dijit.layout._TabButton",postMixInProperties: function(){ this["class"] = "dijitTabLabels-" + this.tabPosition + (this.doLayout ? "" : " dijitTabNoLayout"); this.inherited(arguments); }, onButtonClick: function(/*Widget*/ page){ // summary: // Called whenever one of my child buttons is pressed in an attempt to select a page this.inherited(arguments); dojo.forEach(page.getDescendants(),function(widget){ if(widget.resize)widget.resize(); }); }, //Todo: can this be accomplished in CSS? _rectifyRtlTabList: function(){ //Summary: Rectify the length of all tabs in rtl,otherwise the tab lengths are different in IE if(0 >= this.tabPosition.indexOf('-h')){ return; } if(!this.pane2button){ return; } var maxLen = 0; for(var pane in this.pane2button){ maxLen = Math.max(maxLen,dojo.marginBox(this.pane2button[pane].innerDiv).w); } //unify the length of all the tabs for(pane in this.pane2button){ this.pane2button[pane].innerDiv.style.width = maxLen + 'px'; } } });

原文地址:https://www.jb51.cc/dojo/291934.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐