Ext.onReady(function(){ //加载器 var treeLoader = new Ext.tree.TreeLoader({ dataUrl : "start/LoadTree.jsp" }); //根节点 var rootNode = new Ext.tree.AsyncTreeNode({ id : "0", text : "root" }) var tree = new Ext.tree.TreePanel({ //一些简单的配置,详细信息看TreePancel renderTo : 'myTree', //要显示的DIV root : rootNode, //根节点 rootVisible : false, //是否显示根节点 autoScroll : true, //自动出现滚动条 enableDD : false, //是否可以拖动 loader : treeLoader, //加载器,默认为Ext.tree.TreeLoader singleClickExpand : false, //单击节点是否展开
//单击展开节点 listeners: { "click": function(node, e) { if (node.expanded == false) { node.expand(); }else { node.collapse(); } } } }); //单击节点执行的内容 tree.on("click",function(node){ var url = node.attributes.href; if(node.hasChildNodes() == false){ parent.main.location = path + "/" + url; } }); });
加载的JSON数据的格式:
[{id:1,text:'用户管理',children:[{id:2,text:'用户信息管理',href:'usermanager/userinfo/AllUserList.jsp',leaf:true},{id:3,text:'用户角色管理',href:'null',leaf:true}]},{id:0,text:'退出',href:'loginOut.jsp',leaf:true}]
但是在实际过程中,单击节点跳转的时候,tree所在的页面有的时候会刷新成节点url的页面。。。不知道什么原因。
引入EXT的文件时,是有顺序的。
<link rel="stylesheet" href="<%=path %>/ext/resources/css/ext-all.css" type="text/css"></link>
<script type="text/javascript" src="<%=path %>/ext/ext-base.js"></script>
<script type="text/javascript" src="<%=path %>/ext/ext-all.js"></script>