<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>两个(多个)根节点的树</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="../../examples/examples.css" />
<script type="text/javascript" src="../../examples.js"></script>
<script type="text/javascript">
Ext.onReady(function(){
// shorthand
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
el:'tree-div',
useArrows:true,
autoScroll:true,
animate:true,
enableDD:true,
rootVisible : false,
containerScroll: true,
loader: new Tree.TreeLoader({
dataUrl:'../../examples/tree/get-nodes.php'
})
});
var root = new Ext.tree.TreeNode({
text : 'extjs.org.cn',
draggable : false,
id : 'extjs.org.cn'
});
tree.setRootNode(root);
// set the root node
var root1 = new Tree.AsyncTreeNode({
text: 'Ext JS',
draggable:false,
id:'source'
});
root.appendChild(root1);
// set the root node
var root2 = new Tree.AsyncTreeNode({
text: 'Ext Plugins',
draggable:false,
id:'plugins'
});
root.appendChild(root2);
// render the tree
tree.render();
root.expand();
});
</script>
</head>
<body>
<h1>两个(多个)根节点的树</h1>
<p>改编自ExtJs 自带的tree例子,可以为该树选择两个以上的根节点。</p>
<p>原理:ExtJs 的树并不支持多个根节点,但它提供了一个隐藏根节点的属性.
<br /> 其实就是相当于新建一个虚拟的根节点,然后把多个节点挂到该节点上,然后再把虚拟的根节点隐藏.
<br /> 我们看到所有二级节点都变成了根节点,变相实现了多个根节点的功能. </p>
<div id="tree-div" style="overflow:auto; height:300px;width:250px;border:1px solid #c3daf9;"></div>
</body>
</html>
原文: http://extjs.org.cn/node/273
treePanel.on('beforeload', function(node) {
treePanel.loader.dataUrl = 'showJigouTree.action?orgid=' + node.id+'&qhdm='+qhlbn+'&xtlb='+xtlbn+'&bzlx='+bzlx; // 定义子节点的Loader
});