ztreedemo.jsp:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>My JSP 'ztreedemo.jsp' starting page</title>
  13.  
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="This is my page">
  19. <link rel="stylesheet" href="<%=basePath%>/ztree/css/demo.css" type="text/css">
  20. <link rel="stylesheet" href="<%=basePath%>/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
  21. <script type="text/javascript" src="<%=basePath%>/ztree/js/jquery-1.4.4.min.js"></script>
  22. <script type="text/javascript" src="<%=basePath%>/ztree/js/jquery.ztree.core-3.5.js"></script>
  23. <script type="text/javascript" src="<%=basePath%>/js/test/ztreedemo.js"></script>
  24. </head>
  25.  
  26. <body>
  27. <ul id="treeDemo" class="ztree"></ul>
  28. </body>
  29. </html>

ztreedemo.js:

  1. $(document).ready(function(){
  2. initMyZtree();
  3. });
  4.  
  5. var zNodes="";
  6. var setting = {
  7. view: {
  8. selectedMulti: false,
  9. fontCss: setFontCss
  10. },
  11. async: {
  12. enable: true,
  13. url:"getZtreeData",
  14. autoParam:["id"]
  15. },
  16. callback: {
  17. beforeClick: beforeClickZtree
  18. }
  19. };
  20.  
  21. function initMyZtree(){
  22. $.ajax({
  23. type: "POST",
  24. dataType: "json",
  25. url: 'getZtreeData',
  26. success: function(data) {
  27. zNodes=data;
  28. $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  29. }
  30. });
  31.  
  32. }
  33.  
  34. //单击事件
  35. function beforeClickZtree(treeId, treeNode){
  36. alert(treeNode.id+","+treeNode.name);
  37. }
  38.  
  39. //设置字体
  40. function setFontCss(treeId, treeNode) {
  41. if(treeNode.level==0){
  42. return {'font-weight':'bold','color':'red'};
  43. }else if(treeNode.level==1){
  44. return {'font-weight':'bold','color':'green'};
  45. }else if(treeNode.level==2){
  46. return {'font-weight':'bold','color':'blue'};
  47. }else{
  48. return {};
  49. }
  50. };

CZTestAction.java:

  1. package com.cz.action;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. import net.sf.json.JSONArray;
  13.  
  14. import org.apache.struts2.ServletActionContext;
  15.  
  16. import com.cz.model.TreeNode;
  17. import com.cz.util.SqlHelper;
  18. import com.opensymphony.xwork2.ActionSupport;
  19.  
  20. public class CZTestAction extends ActionSupport{
  21. private String id;
  22.  
  23. public String getId() {
  24. return id;
  25. }
  26.  
  27. public void setId(String id) {
  28. this.id = id;
  29. }
  30.  
  31. /**
  32. * @author chenzheng
  33. * @since 2013-8-21
  34. * @Description: ztree测试
  35. * @throws
  36. * @return
  37. * String
  38. */
  39. public String getZtreeData(){
  40. System.out.println("*********"+id+"**********");
  41. if("null".equals(id)||"".equals(id)||id==null){
  42. id="0";
  43. }
  44. String sql="select t.jgid,t.jgmc,t.fjgid,t.jgbm,(select count(*) from sys_dept sd where sd.fjgid=t.jgid) as ispar from SYS_DEPT t where t.fjgid="+id;
  45. ResultSet rs=SqlHelper.executeQuery(sql, null);
  46. JSONArray jarray=new JSONArray();
  47. List<TreeNode> list=new ArrayList<TreeNode>();
  48. try {
  49. while(rs.next()){
  50. TreeNode tnode=new TreeNode();
  51. tnode.setId(rs.getString(1));
  52. tnode.setName(rs.getString(2));
  53. tnode.setpId(rs.getString(3));
  54. //判断当前节点是否还有子节点
  55. if(Integer.parseInt(rs.getString(5))>0){
  56. tnode.setIsParent(true);
  57. tnode.setHasChild(true);
  58. }else{
  59. tnode.setIsParent(false);
  60. tnode.setHasChild(false);
  61. }
  62. list.add(tnode);
  63. }
  64. } catch (SQLException e) {
  65. e.printStackTrace();
  66. }
  67. jarray.addAll(list);
  68. System.out.println(jarray.toString());
  69. HttpServletResponse response = ServletActionContext.getResponse();
  70. response.setCharacterEncoding("utf-8");
  71. PrintWriter pw = null;
  72. try {
  73. pw = response.getWriter();
  74. pw.write(jarray.toString());
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. pw.flush();
  79. pw.close();
  80. return null;
  81. }
  82. }

TreeNode.java:

  1. package com.cz.model;
  2.  
  3. public class TreeNode {
  4.  
  5. private String id;
  6. private String pId;
  7. private String name;
  8. private Boolean isParent;
  9. private Boolean hasChild;
  10. public String getId() {
  11. return id;
  12. }
  13. public void setId(String id) {
  14. this.id = id;
  15. }
  16. public String getpId() {
  17. return pId;
  18. }
  19. public void setpId(String pId) {
  20. this.pId = pId;
  21. }
  22. public String getName() {
  23. return name;
  24. }
  25. public void setName(String name) {
  26. this.name = name;
  27. }
  28. public Boolean getIsParent() {
  29. return isParent;
  30. }
  31. public void setIsParent(Boolean isParent) {
  32. this.isParent = isParent;
  33. }
  34. public Boolean getHasChild() {
  35. return hasChild;
  36. }
  37. public void setHasChild(Boolean hasChild) {
  38. this.hasChild = hasChild;
  39. }
  40. }

效果图:

本文转自:http://xiaoxiaomuyu.iteye.com/blog/1929490

ztree学习之异步加载节点(一)的更多相关文章

  1. ztree插件的使用及列表项拖拽的实现(jQuery)+异步加载节点数据

    为了实现如图所示的树状结构图,并使列表项可拖动到盒子里,研究了ztree这个插件的使用,并仔细研究了列表项的拖动事件.完成了预期需求,对jQuery的运用得到了提高.这个插件的功能非常强大,除了基本的 ...

  2. 关于AJAX异步加载节点无法触发点击事件问题的解决方式

    做练习的过程中遇到一个问题,使用AJAX异步新增一个节点,无法触发点击事件,经过查阅之后知道一个方式,使用JS的委托事件,在此做一个记录. $(document).on('click', '.recr ...

  3. ztree异步加载---------补发周日内容

    上周六老师要求和大三的进行JAVA知识交流,总体来说就是给大三学长做的东西打分,然后大三学长再教我们如果构建ztree.毕竟第一次接触ztree,所以有很多不了解,但通过周六日努力,还是做出来了.现在 ...

  4. ztree插件异步加载 使用RESTEasy报错 Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

    在使用ztree插件实现异步加载时遇到后台RESTEasy接收参数问题,查看后台报错: A servlet request to the URI http://localhost:8080/area/ ...

  5. 插件使用一树形插件---zTree一zTree异步加载

    zTree 可以实现异步加载.异步加载可以让初次加载速度快,带来好的用户体验. 异步加载 官方源码中的demo提示了例子.例子是采用php语言. 在java语言中,zTree如何与Servlet结合呢 ...

  6. Jquery Ztree异步加载树

    1. 下载jquery的JS文件/ztree的CSS文件和JS文件 https://jquery.com/download/ https://gitee.com/zTree/zTree_v3/tree ...

  7. 演化理解 Android 异步加载图片

    原文:http://www.cnblogs.com/ghj1976/archive/2011/05/06/2038738.html#3018499 在学习"Android异步加载图像小结&q ...

  8. Ztree异步加载自动展开节点

    在Ztree的官网Demo中,有自动展开的例子,是通过设置节点属性open:true来实现自动展开的,但是在异步加载中,这个属性设置为true也不会自动展开,因为open:true是指在有子节点的情况 ...

  9. ztree异步加载树节点

    参考文档:https://www.cnblogs.com/tenWood/p/8620708.html ztree api地址:http://www.treejs.cn/v3/api.php 说明:j ...

随机推荐

  1. 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续

    目录 ASP.NET WEB API的出现缘由 ASP.NET WEB API的强大功能 ASP.NET WEB API的出现缘由 随着UI AJAX 请求适量的增加,ASP.NET MVC基于Jso ...

  2. HTML表单元素登陆界面

    <form action="" method="post" name="myform"><p>E-mail:< ...

  3. Expected MultipartHttpServletRequest: is a MultipartResolver configured?

    2015-05-05 19:09:47.510::WARN: /purchase/long-term-contract/uploading.htmjava.lang.IllegalArgumentEx ...

  4. 父页面刷新 保持iframe页面url不变

    思路:点击父页面时写cookies-->刷新时从cookies中奖内容读取出来. 本文转自:http://blog.163.com/sdolove@126/blog/static/1146378 ...

  5. Android clickable 和 focusable

    setClickable(),好像是控制按钮是否可以被点击和点击之后触发监听器事件.setFocusable();控制键盘是否可以获得这个按钮的焦点.(我按实体键盘上方向键,button被选中) 今天 ...

  6. Window环境下Python和Django的安装

    转载地址:http://blog.csdn.net/haoni123321/article/details/7593821 1.下载python,本文使用python-2.7.2.msi 2.下载dj ...

  7. 解决Unable to reach a settlement: [diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1] and [curve25519-sha256@li

    SharpSSH或JSCH使用diffie-hellman-group1-sha1和diffie-hellman-group-exchange-sha1密钥交换算法,而OpenSSH在6.7p1版本之 ...

  8. Shopping(hdu 3768)

    题意:给你一个无向图,求从0号点开始遍历所有的指定点再回到0号点的最短路径 #include<cstdio> #include<iostream> #include<qu ...

  9. Android手势锁实现

    最终效果如下 整体思路 a.自定义了一个RelativeLayout(GestureLockViewGroup)在里面会根据传入的每行的个数,生成多个GestureLockView(就是上面一个个小圈 ...

  10. .net学习笔记----会话状态Session

    一.会话状态Session Session用于服务器端状态管理,使用Session之后,每个客户端都可以将实际的数据保存在服务器上,对于每个客户端的数据,将会生成一个对应的唯一的key(保存在客户端) ...