|
在这给大家分享一个用Ext Js生成动态树的示例,代码和生成后的效果图如下,希望给大家有所帮助!
一. 需求
要求生成一颗部门树,初始只列出根部门 ,当点击一个部门节点时,动态载入该部门下的直属子部门,并展开该部门节点 ,部门节点要求支持右键单击事件,当点击右键时,列出相关操作菜单 二. 关键类
这里主要涉及Ext JS的两个类:
Ext.tree.TreeNode Ext.menu.Menu 相关API可以参考:http://extjs.com/deploy/ext/docs/
三. 代码示例
1. 先看一下测试页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Reorder TreePanel</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> <script type="text/javascript" src="reorder.js"></script>
<!-- Common Styles for the examples --> <link rel="stylesheet" type="text/css" href="../shared/examples.css" /> <link rel="stylesheet" type="text/css" href="../shared/lib.css" />
<script type="text/javascript"> /************** onload事件 ***************/ window.onload=function(){ createTree(3); } </script>
</head> <body> <script type="text/javascript" src="../shared/examples.js"></script> <h1>现在要生成一颗动态树</h1> <div id="container"> </div> </body> </html>
2. 再看一下生成树的函数
/*********************************** 创建树 by chb ************************************/ function createTree(n){
Ext.QuickTips.init(); var mytree=new Ext.tree.TreePanel({ el:"container", animate:true, title:"Extjs动态树", collapsible:true, enableDD:true, enableDrag:true, rootVisible:true, autoScroll:true, autoHeight:true, width:"30%", lines:true }); //根节点 var root=new Ext.tree.TreeNode({ id:"root", text:"集团公司", expanded:true });
for(var i=0;i<n;i++){ var sub1=new Ext.tree.TreeNode({ id:i+1, text:"子公司"+(i+1), singleClickExpand:true, listeners:{ //监听单击事件 "click":function(node){ myExpand(node); }, //监听右键 "contextmenu":function(node,e){ //列出右键菜单 menu=new Ext.menu.Menu([ { text:"打开当前节点", icon:"list.gif", handler:function(){ myExpand(node); } }, { text:"编辑当前节点", icon:"list.gif", handler:function(){ alert(node.id); } }, { text:"删除当前节点", icon:"list.gif", handler:function(){ alert(node.id); } }]); //显示在当前位置 menu.showAt(e.getPoint()); } } }); root.appendChild(sub1); } mytree.setRootNode(root);//设置根节点
mytree.render();//不要忘记render()下,不然不显示哦 }
共2页: 上一页 1 [2] 下一页
|