解决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'; } } });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值