ztree
2017-03-01 23:57
148 查看
推酷
文章
站点
主题
活动
APP 荐
周刊
更多
登录
时间 2013-10-01 21:45:49 CSDN博客
原文 http://blog.csdn.net/nupt123456789/article/details/12224731
主题 jQuery CSS
前言:
最近的项目需要用到zTree树,于是想将zTree树总结一下。前段时间一直没有时间总结,趁国庆还有这么点时间,总结一下。zTree树控件是基于Jquery的,官方提供了很好的API文档和Demo
用户可以从如下地址下载:http://www.ztree.me/hunter/zTree.html
1.帮助文档和API
zTree的帮助文档和API都是非常全面的,只是有些Demo的后台是用PHP写的,因此,如果想看更加全面的Demo的话,最好将帮组文档发布到本地的Apache服务器上。
2.用一个Demo来演示Jquery zTree的功能
要点:
2.1 zTree树的数据源为JSON格式
2.2 zTree树控件的信息是通过请求url动态加载的
2.3 zTree树的onClick函数,点击树的任意一个节点后 ,就会调用
3.Demo演示
3.1 页面布局
为了能较为全面的演示zTree树的功能,布局大致如下,左边是树行结构,右边是主页面。
index.jsp的代码如下:
为了不污染原有的静态页面,我们将index.jsp文件封装在index.js文件中,代码如下:(注意注释)
3.2后台
后台用的是Struts2框架,在struts.xml文件中设置好Action,根据前台节点的不同id号返回不同JSON格式的数据
4.页面效果
项目源代码: http://download.csdn.net/detail/nuptboyzhb/6347025
未经允许不得用户商业目的
分享
收藏
纠错
推荐文章
1. jQuery 源码系列(十四)自定义事件
2. 如何编写同时用于 Node 和浏览器的 JavaScript 包
3. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、..
4. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonp..
5. 老生常谈:你的 JavaScript 怎么运行得这么慢?
6. 6 个值得好好学习的 JavaScript 框架
我来评几句
登录后评论已发表评论数(0)
CSDN博客+订阅热门文章1. 一张引人注目的可视化图表的背后
2. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、实时编译、h..
3. jQuery 源码系列(十四)自定义事件
4. 如何编写同时用于 Node 和浏览器的 JavaScript 包
5. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势..
关于我们 移动应用 意见反馈 官方微博
推酷文章
站点
主题
活动
APP 荐
周刊
更多
登录
最近的项目需要用到zTree树,于是想将zTree树总结一下。前段时间一直没有时间总结,趁国庆还有这么点时间,总结一下。zTree树控件是基于Jquery的,官方提供了很好的API文档和Demo
用户可以从如下地址下载:http://www.ztree.me/hunter/zTree.html1.帮助文档和API
zTree的帮助文档和API都是非常全面的,只是有些Demo的后台是用PHP写的,因此,如果想看更加全面的Demo的话,最好将帮组文档发布到本地的Apache服务器上。
2.用一个Demo来演示Jquery zTree的功能
要点:
2.1 zTree树的数据源为JSON格式
2.2 zTree树控件的信息是通过请求url动态加载的
2.3 zTree树的onClick函数,点击树的任意一个节点后 ,就会调用
3.Demo演示
3.1 页面布局
为了能较为全面的演示zTree树的功能,布局大致如下,左边是树行结构,右边是主页面。
index.jsp的代码如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <title>Jquery zTree</title> <link rel="stylesheet" type="text/css" href="css/easyui.css"> <link rel="stylesheet" type="text/css" href="css/icon.css" /> <link rel="stylesheet" type="text/css" href="css/main.css" /> <link rel="stylesheet" type="text/css" href="zTree/css/zTreeStyle/zTreeStyle.css"/> <link rel="stylesheet" type="text/css" href="zTree/css/demo.css"/> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.easyui.min.js"></script> <script type="text/javascript" src="zTree/js/jquery.ztree.all-3.5.js"></script> <script type="text/javascript" src="js/index.js"></script> </head> <body id="main" class="easyui-layout"> <div data-options="region:'west',split:true" title="Jquery zTree演示" style="width: 180px; overflow: auto; "> <div class="easyui-accordion" data-options="fit:true,border:false"> <div style="z-index:12754; border: 1px solid lightgray; background: white; width: 150px; height: 35px; display: none; padding: 4px;" id="treeLoadMsg"> <img src="images/loading.gif" style="vertical-align: middle;" width="32" height="32"/> <span>Loading...</span> </div> <ul id="treeDemo" class="ztree"></ul> </div> </div> <div data-options="region:'center'" title="main" style="overflow: hidden;"> <iframe id="iframepage" src="default.jsp" style=" background: white;border: 1px; width: 100%; height: 100%; padding: 0;"></iframe> </div> </body> </html>
为了不污染原有的静态页面,我们将index.jsp文件封装在index.js文件中,代码如下:(注意注释)
3.2后台
后台用的是Struts2框架,在struts.xml文件中设置好Action,根据前台节点的不同id号返回不同JSON格式的数据
4.页面效果
项目源代码: http://download.csdn.net/detail/nuptboyzhb/6347025未经允许不得用户商业目的分享 收藏 纠错
推荐文章1. jQuery 源码系列(十四)自定义事件
2. 如何编写同时用于 Node 和浏览器的 JavaScript 包
3. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、..
4. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonp..
5. 老生常谈:你的 JavaScript 怎么运行得这么慢?
6. 6 个值得好好学习的 JavaScript 框架
我来评几句登录后评论
已发表评论数(0)
CSDN博客
+订阅
热门文章
1. 一张引人注目的可视化图表的背后
2. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、实时编译、h..
3. jQuery 源码系列(十四)自定义事件
4. 如何编写同时用于 Node 和浏览器的 JavaScript 包
5. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势..
关于我们 移动应用 意见反馈 官方微博
文章
站点
主题
活动
APP 荐
周刊
更多
登录
Jquery zTree演示程序Demo总结
时间 2013-10-01 21:45:49 CSDN博客原文 http://blog.csdn.net/nupt123456789/article/details/12224731
主题 jQuery CSS
前言:
最近的项目需要用到zTree树,于是想将zTree树总结一下。前段时间一直没有时间总结,趁国庆还有这么点时间,总结一下。zTree树控件是基于Jquery的,官方提供了很好的API文档和Demo
用户可以从如下地址下载:http://www.ztree.me/hunter/zTree.html
1.帮助文档和API
zTree的帮助文档和API都是非常全面的,只是有些Demo的后台是用PHP写的,因此,如果想看更加全面的Demo的话,最好将帮组文档发布到本地的Apache服务器上。
2.用一个Demo来演示Jquery zTree的功能
要点:
2.1 zTree树的数据源为JSON格式
2.2 zTree树控件的信息是通过请求url动态加载的
2.3 zTree树的onClick函数,点击树的任意一个节点后 ,就会调用
3.Demo演示
3.1 页面布局
为了能较为全面的演示zTree树的功能,布局大致如下,左边是树行结构,右边是主页面。
index.jsp的代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <title>Jquery zTree</title> <link rel="stylesheet" type="text/css" href="css/easyui.css"> <link rel="stylesheet" type="text/css" href="css/icon.css" /> <link rel="stylesheet" type="text/css" href="css/main.css" /> <link rel="stylesheet" type="text/css" href="zTree/css/zTreeStyle/zTreeStyle.css"/> <link rel="stylesheet" type="text/css" href="zTree/css/demo.css"/> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.easyui.min.js"></script> <script type="text/javascript" src="zTree/js/jquery.ztree.all-3.5.js"></script> <script type="text/javascript" src="js/index.js"></script> </head> <body id="main" class="easyui-layout"> <div data-options="region:'west',split:true" title="Jquery zTree演示" style="width: 180px; overflow: auto; "> <div class="easyui-accordion" data-options="fit:true,border:false"> <div style="z-index:12754; border: 1px solid lightgray; background: white; width: 150px; height: 35px; display: none; padding: 4px;" id="treeLoadMsg"> <img src="images/loading.gif" style="vertical-align: middle;" width="32" height="32"/> <span>Loading...</span> </div> <ul id="treeDemo" class="ztree"></ul> </div> </div> <div data-options="region:'center'" title="main" style="overflow: hidden;"> <iframe id="iframepage" src="default.jsp" style=" background: white;border: 1px; width: 100%; height: 100%; padding: 0;"></iframe> </div> </body> </html>
为了不污染原有的静态页面,我们将index.jsp文件封装在index.js文件中,代码如下:(注意注释)
/** * 设置zTree树 */ var setting = { async: { enable: true, url: getUrlByNodeId }, check: { enable: false }, data: { simpleData: { enable: true } }, view: { expandSpeed: "" }, callback: { beforeExpand: beforeExpand, onAsyncSuccess: onAsyncSuccess, onAsyncError: onAsyncError, onClick: zTreeOnClick } }; var zNodes =[ {name:"经典视频检索", id:"1",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"}, {name:"基于内容检索", id:"2",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"}, {name:"基于语义检索", id:"3",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"} ]; /** * @author ZhengHaibo * 功能:通过NodeId获得节点的孩子节点 * 调用:当父节点展开时,调用,返回该父节点的子节点 * 后台数据格式:JSON * @param treeId 树控件的Id * @param treeNode 树节点对象:包含Id等信息 * @return */ function getUrlByNodeId(treeId, treeNode) { return "getNodesDataById?treeNodeId="+treeNode.id; } /** * 展开之前执行的函数 * @param treeId * @param treeNode * @return */ function beforeExpand(treeId, treeNode) { if (!treeNode.isAjaxing) { ajaxGetNodes(treeNode, "refresh"); return true; } else { alert("Loading..."); return false; } } /** * 加载成功后执行的函数 * @param event 封装了js的事件 * @param treeId 树控件的Id * @param treeNode 树节点对象 * @param msg 返回的JSON格式的消息 * @return */ function onAsyncSuccess(event, treeId, treeNode, msg) { console.log("treeId"); console.log(treeId); console.log("treeNode"); console.log(treeNode); console.log("msg"); console.log(msg); if (!msg || msg.length == 0) { return; } var zTree = $.fn.zTree.getZTreeObj("treeDemo"); treeNode.icon = ""; zTree.updateNode(treeNode);//更新树结构 zTree.selectNode(treeNode.children[0]);//设置为第一个子节点为选中状态 } function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); alert("Error ! 异步获取数据异常"); treeNode.icon = ""; zTree.updateNode(treeNode); } function ajaxGetNodes(treeNode, reloadType) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); if (reloadType == "refresh") { treeNode.icon = "zTree/css/zTreeStyle/img/loading.gif"; zTree.updateNode(treeNode); } zTree.reAsyncChildNodes(treeNode, reloadType, true); } /** * 功能:当点击树节点时,调用该函数 * @param event * @param treeId * @param treeNode * @return */ function zTreeOnClick(event, treeId, treeNode) { console.log("zTreeOnClickLog:--------------------------------") console.log(treeId); console.log(treeNode); console.log(treeNode.id); switch(treeNode.id+""){//根据树节点的Id判断 case "1": case "11": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "12": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "13": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "2": case "21": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "22": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "23": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "24": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "3": case "31": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; } } $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes);//初始化zTree树 });
3.2后台
后台用的是Struts2框架,在struts.xml文件中设置好Action,根据前台节点的不同id号返回不同JSON格式的数据
/* * $filename: ZTreeDemoAction.java,v $ * $Date: Sep 27, 2013 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */ package edu.njupt.zhb.ztree.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; /* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: zhb931706659@126.com *Sep 27, 2013 Nanjing,njupt,China */ public class ZTreeDemoAction extends ActionSupport{ /** * */ private static final long serialVersionUID = -3318989776253565435L; private int treeNodeId;//保存树节点的Id /** * 返回树的根节点的Json格式数据 * @return */ public String getNodesDataById(){ System.out.println("treeNodeId = "+treeNodeId); String iconPath = ",icon:\"zTree/css/zTreeStyle/img/diy/3.png\""; String icon2Path = ",icon:\"zTree/css/zTreeStyle/img/diy/2.png\""; String icon9Path = ",icon:\"zTree/css/zTreeStyle/img/diy/9.png\""; String lookIconPath = ",icon:\"zTree/css/zTreeStyle/img/diy/8.png\""; String nodesJson = ""; if (treeNodeId == 1) { nodesJson = "[{id:11, pId:"+treeNodeId+", name: \"综合检索\",isParent:false"+iconPath+"}," + "{id:12, pId:"+treeNodeId+", name: \"视频时间\",isParent:false"+iconPath+"}," + "{id:13, pId:"+treeNodeId+", name: \"视频地点\",isParent:false"+iconPath+"}" + "]"; }else if(treeNodeId == 2) { nodesJson = "[{id:21, pId:"+treeNodeId+", name: \"生成索引\",isParent:false"+icon2Path+"}," + "{id:22, pId:"+treeNodeId+", name: \"上传图像\",isParent:false"+iconPath+"}," + "{id:23, pId:"+treeNodeId+", name: \"图像URL\",isParent:false"+iconPath+"}," + "{id:24, pId:"+treeNodeId+", name: \"查看索引\",isParent:false"+lookIconPath+"}" + "]"; }else if (treeNodeId == 3) { nodesJson = "[{id:31, pId:"+treeNodeId+", name: \"语义检索\",isParent:false"+icon9Path+"}]"; }else{ nodesJson = "[]";//其他情况:父节点没有子节点 } getPrintWriter().write(nodesJson); return SUCCESS; } /** * 获得HttpServletResponse对象 * @return */ public static HttpServletResponse getResponse() { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); return response; } public PrintWriter getPrintWriter() { PrintWriter pw = null; try { pw = getResponse().getWriter(); } catch (IOException e) { e.printStackTrace(); } return pw; } public int getTreeNodeId() { return treeNodeId; } public void setTreeNodeId(int treeNodeId) { this.treeNodeId = treeNodeId; } }
4.页面效果
项目源代码: http://download.csdn.net/detail/nuptboyzhb/6347025
未经允许不得用户商业目的
分享
收藏
纠错
推荐文章
1. jQuery 源码系列(十四)自定义事件
2. 如何编写同时用于 Node 和浏览器的 JavaScript 包
3. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、..
4. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonp..
5. 老生常谈:你的 JavaScript 怎么运行得这么慢?
6. 6 个值得好好学习的 JavaScript 框架
我来评几句
登录后评论已发表评论数(0)
相关站点
CSDN博客+订阅热门文章1. 一张引人注目的可视化图表的背后
2. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、实时编译、h..
3. jQuery 源码系列(十四)自定义事件
4. 如何编写同时用于 Node 和浏览器的 JavaScript 包
5. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势..
关于我们 移动应用 意见反馈 官方微博
推酷文章
站点
主题
活动
APP 荐
周刊
更多
登录
Jquery zTree演示程序Demo总结
时间 2013-10-01 21:45:49 CSDN博客原文 http://blog.csdn.net/nupt123456789/article/details/12224731主题 jQuery CSS前言:最近的项目需要用到zTree树,于是想将zTree树总结一下。前段时间一直没有时间总结,趁国庆还有这么点时间,总结一下。zTree树控件是基于Jquery的,官方提供了很好的API文档和Demo
用户可以从如下地址下载:http://www.ztree.me/hunter/zTree.html1.帮助文档和API
zTree的帮助文档和API都是非常全面的,只是有些Demo的后台是用PHP写的,因此,如果想看更加全面的Demo的话,最好将帮组文档发布到本地的Apache服务器上。
2.用一个Demo来演示Jquery zTree的功能
要点:
2.1 zTree树的数据源为JSON格式
2.2 zTree树控件的信息是通过请求url动态加载的
2.3 zTree树的onClick函数,点击树的任意一个节点后 ,就会调用
3.Demo演示
3.1 页面布局
为了能较为全面的演示zTree树的功能,布局大致如下,左边是树行结构,右边是主页面。
index.jsp的代码如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <title>Jquery zTree</title> <link rel="stylesheet" type="text/css" href="css/easyui.css"> <link rel="stylesheet" type="text/css" href="css/icon.css" /> <link rel="stylesheet" type="text/css" href="css/main.css" /> <link rel="stylesheet" type="text/css" href="zTree/css/zTreeStyle/zTreeStyle.css"/> <link rel="stylesheet" type="text/css" href="zTree/css/demo.css"/> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.easyui.min.js"></script> <script type="text/javascript" src="zTree/js/jquery.ztree.all-3.5.js"></script> <script type="text/javascript" src="js/index.js"></script> </head> <body id="main" class="easyui-layout"> <div data-options="region:'west',split:true" title="Jquery zTree演示" style="width: 180px; overflow: auto; "> <div class="easyui-accordion" data-options="fit:true,border:false"> <div style="z-index:12754; border: 1px solid lightgray; background: white; width: 150px; height: 35px; display: none; padding: 4px;" id="treeLoadMsg"> <img src="images/loading.gif" style="vertical-align: middle;" width="32" height="32"/> <span>Loading...</span> </div> <ul id="treeDemo" class="ztree"></ul> </div> </div> <div data-options="region:'center'" title="main" style="overflow: hidden;"> <iframe id="iframepage" src="default.jsp" style=" background: white;border: 1px; width: 100%; height: 100%; padding: 0;"></iframe> </div> </body> </html>
为了不污染原有的静态页面,我们将index.jsp文件封装在index.js文件中,代码如下:(注意注释)
/** * 设置zTree树 */ var setting = { async: { enable: true, url: getUrlByNodeId }, check: { enable: false }, data: { simpleData: { enable: true } }, view: { expandSpeed: "" }, callback: { beforeExpand: beforeExpand, onAsyncSuccess: onAsyncSuccess, onAsyncError: onAsyncError, onClick: zTreeOnClick } }; var zNodes =[ {name:"经典视频检索", id:"1",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"}, {name:"基于内容检索", id:"2",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"}, {name:"基于语义检索", id:"3",isParent:true,iconOpen:"zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"zTree/css/zTreeStyle/img/diy/1_close.png"} ]; /** * @author ZhengHaibo * 功能:通过NodeId获得节点的孩子节点 * 调用:当父节点展开时,调用,返回该父节点的子节点 * 后台数据格式:JSON * @param treeId 树控件的Id * @param treeNode 树节点对象:包含Id等信息 * @return */ function getUrlByNodeId(treeId, treeNode) { return "getNodesDataById?treeNodeId="+treeNode.id; } /** * 展开之前执行的函数 * @param treeId * @param treeNode * @return */ function beforeExpand(treeId, treeNode) { if (!treeNode.isAjaxing) { ajaxGetNodes(treeNode, "refresh"); return true; } else { alert("Loading..."); return false; } } /** * 加载成功后执行的函数 * @param event 封装了js的事件 * @param treeId 树控件的Id * @param treeNode 树节点对象 * @param msg 返回的JSON格式的消息 * @return */ function onAsyncSuccess(event, treeId, treeNode, msg) { console.log("treeId"); console.log(treeId); console.log("treeNode"); console.log(treeNode); console.log("msg"); console.log(msg); if (!msg || msg.length == 0) { return; } var zTree = $.fn.zTree.getZTreeObj("treeDemo"); treeNode.icon = ""; zTree.updateNode(treeNode);//更新树结构 zTree.selectNode(treeNode.children[0]);//设置为第一个子节点为选中状态 } function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); alert("Error ! 异步获取数据异常"); treeNode.icon = ""; zTree.updateNode(treeNode); } function ajaxGetNodes(treeNode, reloadType) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); if (reloadType == "refresh") { treeNode.icon = "zTree/css/zTreeStyle/img/loading.gif"; zTree.updateNode(treeNode); } zTree.reAsyncChildNodes(treeNode, reloadType, true); } /** * 功能:当点击树节点时,调用该函数 * @param event * @param treeId * @param treeNode * @return */ function zTreeOnClick(event, treeId, treeNode) { console.log("zTreeOnClickLog:--------------------------------") console.log(treeId); console.log(treeNode); console.log(treeNode.id); switch(treeNode.id+""){//根据树节点的Id判断 case "1": case "11": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "12": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "13": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "2": case "21": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "22": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "23": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "24": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; case "3": case "31": document.getElementById("iframepage").src="tree_click_page.jsp?treeNodeId="+treeNode.id; break; } } $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes);//初始化zTree树 });
3.2后台
后台用的是Struts2框架,在struts.xml文件中设置好Action,根据前台节点的不同id号返回不同JSON格式的数据
/* * $filename: ZTreeDemoAction.java,v $ * $Date: Sep 27, 2013 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */ package edu.njupt.zhb.ztree.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; /* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: zhb931706659@126.com *Sep 27, 2013 Nanjing,njupt,China */ public class ZTreeDemoAction extends ActionSupport{ /** * */ private static final long serialVersionUID = -3318989776253565435L; private int treeNodeId;//保存树节点的Id /** * 返回树的根节点的Json格式数据 * @return */ public String getNodesDataById(){ System.out.println("treeNodeId = "+treeNodeId); String iconPath = ",icon:\"zTree/css/zTreeStyle/img/diy/3.png\""; String icon2Path = ",icon:\"zTree/css/zTreeStyle/img/diy/2.png\""; String icon9Path = ",icon:\"zTree/css/zTreeStyle/img/diy/9.png\""; String lookIconPath = ",icon:\"zTree/css/zTreeStyle/img/diy/8.png\""; String nodesJson = ""; if (treeNodeId == 1) { nodesJson = "[{id:11, pId:"+treeNodeId+", name: \"综合检索\",isParent:false"+iconPath+"}," + "{id:12, pId:"+treeNodeId+", name: \"视频时间\",isParent:false"+iconPath+"}," + "{id:13, pId:"+treeNodeId+", name: \"视频地点\",isParent:false"+iconPath+"}" + "]"; }else if(treeNodeId == 2) { nodesJson = "[{id:21, pId:"+treeNodeId+", name: \"生成索引\",isParent:false"+icon2Path+"}," + "{id:22, pId:"+treeNodeId+", name: \"上传图像\",isParent:false"+iconPath+"}," + "{id:23, pId:"+treeNodeId+", name: \"图像URL\",isParent:false"+iconPath+"}," + "{id:24, pId:"+treeNodeId+", name: \"查看索引\",isParent:false"+lookIconPath+"}" + "]"; }else if (treeNodeId == 3) { nodesJson = "[{id:31, pId:"+treeNodeId+", name: \"语义检索\",isParent:false"+icon9Path+"}]"; }else{ nodesJson = "[]";//其他情况:父节点没有子节点 } getPrintWriter().write(nodesJson); return SUCCESS; } /** * 获得HttpServletResponse对象 * @return */ public static HttpServletResponse getResponse() { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); return response; } public PrintWriter getPrintWriter() { PrintWriter pw = null; try { pw = getResponse().getWriter(); } catch (IOException e) { e.printStackTrace(); } return pw; } public int getTreeNodeId() { return treeNodeId; } public void setTreeNodeId(int treeNodeId) { this.treeNodeId = treeNodeId; } }
4.页面效果
项目源代码: http://download.csdn.net/detail/nuptboyzhb/6347025未经允许不得用户商业目的分享 收藏 纠错
推荐文章1. jQuery 源码系列(十四)自定义事件
2. 如何编写同时用于 Node 和浏览器的 JavaScript 包
3. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、..
4. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonp..
5. 老生常谈:你的 JavaScript 怎么运行得这么慢?
6. 6 个值得好好学习的 JavaScript 框架
我来评几句登录后评论
已发表评论数(0)
相关站点
CSDN博客
+订阅
热门文章
1. 一张引人注目的可视化图表的背后
2. gulp常用功能集合(开发和生产分离、静态资源压缩优化、代码优化、实时编译、h..
3. jQuery 源码系列(十四)自定义事件
4. 如何编写同时用于 Node 和浏览器的 JavaScript 包
5. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势..
关于我们 移动应用 意见反馈 官方微博
相关文章推荐
- Jquery+ztree+json+webservice+mysql制作树形菜单+ajax列表页面
- Yii框架扩展zTreeDropdown【目录树下拉菜单】配置详细说明
- zTree实例
- jquery 插件ztree的应用------简单的树(tree)
- 后台获取ZTREE选中的节点
- 用树展示上下级关系-jquery+ztree+json的运用
- jQuery插件之-zTree
- zTree异步加载简单demo
- ztree实现ajax调用商品分类信息树状显示
- zTree初体验(一)获取所有选中节点数据
- Ztree异步加载树节点
- ztree仅并排同级进行推拽(同一个组织下不同部门排序拖拽)
- 【开源访谈】zTree 作者张其纲访谈实录
- Java zTree 的异步加载demo示例
- ztree 实现树的搜索功能
- FastJson+Ztree:根据数据库层级表生成目录树
- zTree 初始化方法使用
- ztree源码修改(整合到dwz)
- JS 的ztree原理
- ztree “Uncaught TypeError: Object # has no method 'toLowerCase'”