dojo widget 自定义部件嵌套的问题

jssy 2011-03-20

我有个问题,在自定义widget1中再嵌入一个自定义widget2,在widget2中有bordercontainer,采用_Templated混入,但是widget2中borderContainer的布局混乱,但是当浏览器大小变动后就恢复正常。
widget1:

<div style="width: 100%; height: 100%;" >
	<div>Following is Workspace.Please looking.</div>
	<div dojotype="dijit.layout.TabContainer" dojoAttachPoint="tabNode" 
	style="width: 100%; height: 100%;" >
		<!--HomePage-->
			<div dojotype="widget2" title="Home" 
				dojoAttachPoint="homePageNode" style="width:100%; height:100%;" >
			</div>	
	</div>
</div>
 

widget2:

<div style="width: 100%; height: 100%;" >
	<div  dojoType="dijit.layout.BorderContainer" design='sidebar' style="height:100%;width:100%;" dojoAttachPoint="bNode" >
		<div dojoType="dijit.layout.ContentPane" region='center' style="background-color:yellow">
				test center
		</div>
		<div dojoType="dijit.layout.ContentPane" region='left' style="width:50%;background-color:blue">
				test left
			<div dojoType="dijit.form.TextBox" value="bona shen"></div>
			<div dojoType="dijit.form.Button">Click here</div>
		</div>
	</div>
	
</div>

 临时有一个办法可以解决上述问题:

在widget2.startup()方法中加入如下代码:

if(this._started)return;
		this.inherited(arguments);
		//调整bnode的布局
		(function(node){
			setTimeout(function(){
				if(node&&node.resize)node.resize();
			},1);
		})(this.bNode);
 
EldonReturn 2011-03-24
没错,就是在startup完了之后resize一下。resize会去重新计算渲染区域的大小。这个在Dojo的container里面貌似挺常见的一个问题。
lcq_0618 2014-12-18
刚刚看到,解决了问题,多谢!
Global site tag (gtag.js) - Google Analytics