zTree学习笔记
2015-09-24 14:39
330 查看
记录一下zTree的使用
1,先导入需要的文件,我的demo是基于3.1的版本的,文件目录如下
ztree.all导入了以后,剩下的三个可以不导入。all就是把另外三个集合一起了
zTreeStyle文件下面是ztree需要的css和图片。这些东西都在ztree的开发包里面
ztree.js是我自己写的js文件。ztree.jsp是数据显示页面。
2,ztree.jsp导入需要的文件,定义放ztree的容器
导入这些文件以后,下面开始写js文件,ztree.js是主要对树的定义了
3,js文件
主要的功能就是上面的js实现的。后台是基于框架的简单增删改。就不在这里写出来了。
4,主要的问题
在写demo的时候遇到的几个问题说一下:
首先是关于ztree的数据格式,ztree的数据格式有两种。标准格式和简单格式。都在官方的文档给出了。
标准格式:
这种格式很清晰的表示了节点的父子关系,一旦节点多了以后就显得很复杂。简单数据格式如下:
简单格式通过id和pid来表示节点之间的父子关系,每一个节点对应一个bean,bean里面的字段就是id,pid,name等等的信息。比较简单。
ztree能解析的格式就按照这两种,是否要严格遵守不确定。
一开始从后台返回数据的时候采用的struts2配饰的形似,返回了如下数据解析不成功。
后台返回的是一个list,可能正是因为有前面的nodes在,解析总是不成功。报了一个ztree内部的replace方法错误。
于是改用response直接写了一个串到前台:
这个时候就可以正常解析了。
这也是这两天学习ztree遇到的最大的一个问题吧。这里搞清楚看api就慢慢容易了。其他的功能就可以逐步实习
1,先导入需要的文件,我的demo是基于3.1的版本的,文件目录如下
ztree.all导入了以后,剩下的三个可以不导入。all就是把另外三个集合一起了
zTreeStyle文件下面是ztree需要的css和图片。这些东西都在ztree的开发包里面
ztree.js是我自己写的js文件。ztree.jsp是数据显示页面。
2,ztree.jsp导入需要的文件,定义放ztree的容器
<link rel="stylesheet" type="text/css" href="<%=path%>/ztree/zTreeStyle/zTreeStyle.css"> </head> <body> <ul id="tree" class="ztree" style="width:260px; overflow:auto;"></ul> </body> <script type="text/javascript" src="<%=path%>/ztree/js/jquery-1.4.4.min.js "></script> <script type="text/javascript" src="<%=path%>/ztree/js/jquery.ztree.core-3.1.js "></script> <script type="text/javascript" src="<%=path%>/ztree/js/jquery.ztree.excheck-3.1.js "></script> <script type="text/javascript" src="<%=path%>/ztree/js/jquery.ztree.exedit-3.1.js "></script> <script type="text/javascript" src="<%=path%>/ztree/ztree.js "></script>
导入这些文件以后,下面开始写js文件,ztree.js是主要对树的定义了
3,js文件
$(document).ready(function() { //定义树的内容 var setting = { //异步加载信息 async: { enable : true, type : "post", url : "/basic/treeAction!getNodes.action", //提交的数据信息。根据这些信息,可以返回对应节点下面的数据 autoParam : ["id", "name", "level"], //这个信息可以不需要 otherParam : {"otherParam":"zTreeAsyncTest"}, //对节点做一些过滤 dataFilter : filter }, //编辑功能 edit: { enable: true, //分别显示删除按钮和重命名按钮 showRemoveBtn: true, showRenameBtn: true }, //复选框 check : { enable : true, chkStyle : "checkbox", //定义选择功能:节点选择以后对子父节点的影响 chkboxType : { "Y": "ps", "N": "ps" } }, view : { selectedMulti: true }, data : { //数据格式,简单数据格式 simpleData : { enable : true } }, //回调函数,在点检删除和修改以后回调 callback : { onRemove : removeNode, onRename : renameNode } }; //初始化树 var MyTree = $.fn.zTree.init($("#tree"), setting); //向后台提交请求修改节点信息 function renameNode(event, treeId, treeNode){ $.ajax({ type : "post", url : "/basic/treeAction!updateNode.action", data : {"id":treeNode.id,"name":treeNode.name}, success : function(resp){ var treeObj = $.fn.zTree.getZTreeObj("tree"); treeObj.reAsyncChildNodes(null, "refresh"); }, error : function(resp){ } }); } //删除节点 function removeNode(event, treeId, treeNode){ alert(treeId + treeNode.name); $.ajax({ type : "post", url : "/basic/treeAction!deleteNode.action", data : {"id":treeNode.id}, success : function(resp){ //alert("success"+resp.msg); //删除成功以后刷新树 var treeObj = $.fn.zTree.getZTreeObj("tree"); treeObj.reAsyncChildNodes(null, "refresh"); }, error : function(resp){ //alert("error"+resp.msg); } }); } function filter(treeId, parentNode, childNodes) { if (!childNodes) return null; for (var i=0, l=childNodes.length; i<l; i++) { childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.'); } return childNodes; }; });
主要的功能就是上面的js实现的。后台是基于框架的简单增删改。就不在这里写出来了。
4,主要的问题
在写demo的时候遇到的几个问题说一下:
首先是关于ztree的数据格式,ztree的数据格式有两种。标准格式和简单格式。都在官方的文档给出了。
标准格式:
[ { name:"父节点1 - 展开", open:true, children: [ { name:"父节点11 - 折叠", children: [ { name:"叶子节点111"}, { name:"叶子节点112"}, { name:"叶子节点113"}, { name:"叶子节点114"} ]}, { name:"父节点12 - 折叠", children: [ { name:"叶子节点121"}, { name:"叶子节点122"}, { name:"叶子节点123"}, { name:"叶子节点124"} ]}, { name:"父节点13 - 没有子节点", isParent:true} ]}, { name:"父节点2 - 没有子节点", isParent:true} ];
这种格式很清晰的表示了节点的父子关系,一旦节点多了以后就显得很复杂。简单数据格式如下:
[ { id:1, pId:0, name:"父节点1 - 展开", open:true}, { id:11, pId:1, name:"父节点11 - 折叠"}, { id:111, pId:11, name:"叶子节点111"}, { id:112, pId:11, name:"叶子节点112"}, { id:113, pId:11, name:"叶子节点113"}]
简单格式通过id和pid来表示节点之间的父子关系,每一个节点对应一个bean,bean里面的字段就是id,pid,name等等的信息。比较简单。
ztree能解析的格式就按照这两种,是否要严格遵守不确定。
一开始从后台返回数据的时候采用的struts2配饰的形似,返回了如下数据解析不成功。
{"nodes":[{"id":1,"isParent":true,"name":"交通部","pId":0},{"id":2,"isParent":true,"name":"外交部","pId":0},{"id":3,"isParent":true,"name":"农业部","pId":0},{"id":7,"isParent":true,"name":"7","pId":0}]}
后台返回的是一个list,可能正是因为有前面的nodes在,解析总是不成功。报了一个ztree内部的replace方法错误。
于是改用response直接写了一个串到前台:
[{"id":1,"isParent":true,"name":"交通部","pId":0},{"id":2,"isParent":true,"name":"外交部","pId":0},{"id":3,"isParent":true,"name":"农业部","pId":0},{"id":7,"isParent":true,"name":"7","pId":0}]
这个时候就可以正常解析了。
这也是这两天学习ztree遇到的最大的一个问题吧。这里搞清楚看api就慢慢容易了。其他的功能就可以逐步实习
相关文章推荐
- rm格式插入广告代码
- C#判断指定驱动器是否是Fat分区格式的方法
- C#实现获取系统目录并以Tree树叉显示的方法
- C语言实现输入一颗二元查找树并将该树转换为它的镜像
- C#判断指定分区是否是ntfs格式的方法
- .net中前台javascript与后台c#函数相互调用问题
- C#实现判断图形文件格式的方法
- ztree获取当前选中节点子节点id集合的方法
- Photoshop HD Photo 文件格式插件汉化绿色版 下载
- jsp导出身份证到excel时候格式不对但以X结尾的却可以
- 数据库的日期格式转换
- C# 设置系统日期格式的方法
- 纯jsp打造无限层次的树代码
- 一招最简单有效直接的防止黑客拿后台的设置方法
- android 默认时间格式修改方法
- js 判断上传文件大小及格式代码
- ASP.NET 后台登录小技巧介绍
- php遍历树的常用方法汇总
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- PHP文件缓存内容保存格式实例分析