weixin_42347444 2009-09-17 09:35
浏览 438
已采纳

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

现在有段程序 需要根据 查询内容动态地展示 树形结构。
原先默认的结构展示效果是 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条回答

  • iteye_10013 2009-09-17 09:53
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器