100分提问:这是TreePanel放进去一个被划分了两个部分的tabpanel的比较复杂的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/18 05:26:08
http://17ext.com/showtopic-5008.aspx
里面的最后一个贴的问题:

{region:"center",width:200,layout:"border", html:"<div id=\"dinemaintree\"></div>"}

当我去删layout:"border"时,那个TreePanel根本就出不到页面,什么东西都没有变化,是不是这里出现了问题呢?
renderTo:Ext.get("dinemaintree"),

在EXTjs里,不是说只要有一个DIV的ID,直接渲染到那个ID里就OK了吗?但是现在就不行了,请问这是什么问题呢?

renderTo:"dinemaintree", 这样也试下,也不行,什么动静都没有。

但是,如果换成这样:

{region:"center",width:200,layout:"border", items:[dineMainTree,{region:"center"}]}
那棵树确实是出来了,但是,不是在我那个tabpanel的区域里啊,。。直接在页面的BODY里了。。。就是默认在页面的最前面了。。

请问版主们这是什么原因呢???谢谢了啊。。。。非常的感谢。。。

来源:一起Ext
原文地址:http://17ext.com/showtopic-5008.aspx

首先肯定一个你的理解:在EXTjs里,不是说只要有一个DIV的ID,直接渲染到那个ID里就OK了吗
这句话是正确的,但是,当下面的代码定义过后
{region:"center",width:200,layout:"border", html:"<div id=\"dinemaintree\"></div>"},
在HTML里面是没有马上出现这个div的,但是你却调用了renderTo:Ext.get("dinemaintree"),
这个方法,那么Ext.get("dinemaintree")肯定返回空。
解决方法就是做一个panel的引用
var centerPanel =new Ext.Panel({region:"center",width:200,layout:"border", html:"<div id=\"dinemaintree\"></div>"});
centerPanel.on('render',function(){
这个事件的作用是:当这个panel被渲染后,也就是在HTML文档中存在过后,再来进行这个tree的渲染。
renderTo:Ext.get("dinemaintree"),

})
不明白可以加我HI