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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘