iteye_8232
2009-03-24 11:10
浏览 271

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 这位大哥 ,已帮我问题正确解决,送分,由于已经没有分了,所以这点分,希望不要介意。。抱歉!!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zhoujuan520 2009-03-24 11:34
    已采纳

    给你一个可以直接运行的示例
    运行的效果如下图
    [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

    已采纳该答案
    打赏 评论
  • zhoujuan520 2009-03-24 11:13

    [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]

    打赏 评论
  • zhoujuan520 2009-03-24 11:14

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

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

    打赏 评论
  • playfish05 2009-03-24 11:21

    [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]

    范例参考

    打赏 评论

相关推荐 更多相似问题