如何动态设置树形结构的根节点

现在有段程序 需要根据 查询内容动态地展示 树形结构。
原先默认的结构展示效果是 root为根,child1、child2为儿子节点,之后还有child11、child12等孙子节点,现在输入查询条件 child1,要求能够将child1作为根节点,进行树形展示,我在查询代码中 写下:

function querytree(){

tree.setRootNode(temprt);//temprt是 需要设置的 新的树形结构的 根节点
alert(tree.getRootNode().id);//这个地方显示 树的根节点已经 设置为temprt
tree.getRootNode().reload();//此处报错,显示的是 R is undefined ,C is undefined

}

不知道为什么?是不是树形结构的配置错误?我这个是一个异步加载的树,小弟刚刚学习ext不久,困惑了几天,希望能够得到大家的帮助。
树形 结构如下所示:
var tree = new Ext.tree.TreePanel({
collapsible :true,
id : 'tree-mianban',
title : '树',
region : 'west',
animate : true,
enableDD : true,
containerScroll : false,
loader : new Ext.tree.TreeLoader({
dataUrl : getSitePath() +"/RowAction_findPeopleListTree.action"
}),
lines : true,
containerScroll : false,
border : true
});

// 根节点
var root = new Ext.tree.AsyncTreeNode({
text : '木叶',
draggable : false,
id : 'root'
});

tree.setRootNode(root);
tree.render("treepanel");//此处先 设置 树形结构的根节点为root

//临时根节点
var temprt = new Ext.tree.AsyncTreeNode({
text:"child1",
id:"child1"
});
//查询,实现 进行根节点动态设置的方法
function querytree(){

tree.setRootNode(temprt);//temprt是 需要设置的 新的树形结构的 根节点
alert(tree.getRootNode().id);//这个地方显示 树的根节点已经 设置为temprt
tree.getRootNode().reload();//此处报错,显示的是 R is undefined ,C is undefined

}
[b]问题补充:[/b]
to atian25 :
你好,我在 环境中调试了你的程序,两个listner都试过了,为什么会出现 reload()方法没有的错误呢?请帮我查看下,谢谢了 代码如下:
var root = new Ext.tree.AsyncTreeNode({
text : '木叶',
draggable : false,
id : 'root'
});

var tree = new Ext.tree.TreePanel({   
    useArrows: true,   
    autoScroll: true,   
    animate: true,   
    enableDD: true,   
    containerScroll: true,   
    border: false,   
    // auto create TreeLoader 
   loader:new Ext.tree.TreeLoader({dataUrl:getSitePath() +"/RowAction_findPeopleListTree.action"}),

    renderTo:"treepanel"
    ,root:root

// ,root:
// {

// nodeType: 'async',

// text: 'Ext JS',

// draggable: false,

// id: 'root'

// }

,listeners:{

'click':function(node,e){

if(node!=tree.getRootNode()){

tree.setRootNode({

nodeType: 'async',

text: node.text,

draggable: false,

id: node.id

});

var c =tree.getRootNode();
// alert(c.id);
c.reload();
}

}

}

// ,listeners:{

// 'click':function(node,e){

// if(node!=tree.getRootNode()){

// var newNodeCfg = {

// nodeType: 'async'

// };

// Ext.applyIf(newNodeCfg,node.attributes);

// tree.setRootNode(newNodeCfg);
// var c = tree.getRootNode();
// newNodeCfg.reload();
//// tree.getRootNode().reload();

// }

// }

// }

}); 

});

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐