Extjs this.el.dom为空的情况

不知道为什么我写的一个最简单的一个根节点,总是提示Extjs this.el.dom为NULL或者不是对象。代码已经看了很多次了 应该是争取的吧 把代码贴出来给大家看看~



var Tree = Ext.tree; var tree=new Tree.TreePanel({el:'tree-div'}); var root=new Ext.tree.TreeNode({text:'根节点'}); tree.setRootNode(root); tree.render(); tree.getRootNode().expand();


有知道答案的帮帮我啊 搞了一天没看出任何问题 恕小弟愚昧!
[b]问题补充:[/b]
谢谢yourgame 这位大哥 ,已帮我问题正确解决,送分,由于已经没有分了,所以这点分,希望不要介意。。抱歉!!

给你一个可以直接运行的示例
运行的效果如下图
[img]http://yourgame.iteye.com/upload/picture/pic/33979/2a2c53f7-347f-3311-8b5f-9c7c0984a7a8.jpg[/img]

[code="js"]Ext.onReady(function() {
var d = new Ext.tree.TreePanel({
renderTo:Ext.getBody(),
border : false,
rootVisible : false,
autoScroll : true,
loader : new Ext.tree.TreeLoader({
dataUrl : 'tree-data-manager.json'
}),
root : new Ext.tree.AsyncTreeNode(),
listeners : {
'click' : function(n) {
}
}
})

})[/code]

新建一个名字叫做 tree-data-manager.json 的文件放到你引用了上面js的页面的相同目录下面.这个文件的内容如下
[code="js"][{
text:'图书管理',
expanded: true,
children:[{
text:'图书信息管理',
id:'book-manage',
leaf:true
}]
},{
text:'系统管理',
expanded: true,
children:[{
text:'分公司管理',
id:'company-manage',
leaf:true
},{
text:'部门管理',
id:'dept-manage',
leaf:true
},{
text:'用户管理',
id:'user-manage',
leaf:true
},{
text:'职务管理',
id:'duty-manage',
leaf:true
}]
},{
text:'科目 & 分类管理',
children:[{
text:'科目管理',
id:'subject-manage',
leaf:true
},{
text:'分类管理',
id:'category-manage',
leaf:true
}]
}]
[/code]

有任何问题可以联系我 3990995

[code="js"]Ext.onReady(function() {
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
el : 'tree-div'
});
var root = new Ext.tree.TreeNode({
text : '根节点'
});
tree.setRootNode(root);
tree.render();
tree.getRootNode().expand();
}[/code]

你要把你的代码写在Ext.onReady()里面

因为你的页面还没有加载完,你就去获取tree-div这个元素,所以就会有这个错误

[code="js"]<br> Ext.onReady(function(){<br> var Tree = Ext.tree;<br> var root=new Tree.TreeNode({id:&#39;0&#39;,text:&#39;Root&#39;});<br> var node1=new Tree.TreeNode({id:&#39;1&#39;,text:&#39;node1&#39;});<br> var node2=new Tree.TreeNode({id:&#39;2&#39;,text:&#39;node2&#39;});<br> var node11=new Tree.TreeNode({id:&#39;11&#39;,text:&#39;node11&#39;,leaf:true});<br> node1.appendChild(node11);<br> var node21=new Tree.TreeNode({id:&#39;21&#39;,text:&#39;node21&#39;,leaf:true});<br> var node22=new Tree.TreeNode({id:&#39;22&#39;,text:&#39;node22&#39;,leaf:true});<br> var node4=new Tree.AsyncTreeNode({id:&#39;4&#39;,text:&#39;node4&#39;,leaf:false,<br> loader:new Tree.TreeLoader({dataUrl:&#39;login.jsp&#39;})});</p> <pre><code> node2.appendChild([node21,node22]); root.appendChild([node1,node2,node4]); var treePanel=new Tree.TreePanel(&#39;tree_div&#39;, { animate:true,line:true,selMode:true,rootVisible:true}); treePanel.setRootNode(root); treePanel.render(); </code></pre> <p>});</p> <p>

[/code]

范例参考