ztreedemo.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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'ztreedemo.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" href="<%=basePath%>/ztree/css/demo.css" type="text/css">
<link rel="stylesheet" href="<%=basePath%>/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="<%=basePath%>/ztree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="<%=basePath%>/ztree/js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/test/ztreedemo.js"></script>
</head> <body>
<ul id="treeDemo" class="ztree"></ul>
</body>
</html>

ztreedemo.js:

$(document).ready(function(){
initMyZtree();
}); var zNodes="";
var setting = {
view: {
selectedMulti: false,
fontCss: setFontCss
},
async: {
enable: true,
url:"getZtreeData",
autoParam:["id"]
},
callback: {
beforeClick: beforeClickZtree
}
}; function initMyZtree(){
$.ajax({
type: "POST",
dataType: "json",
url: 'getZtreeData',
success: function(data) {
zNodes=data;
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
}
}); } //单击事件
function beforeClickZtree(treeId, treeNode){
alert(treeNode.id+","+treeNode.name);
} //设置字体
function setFontCss(treeId, treeNode) {
if(treeNode.level==0){
return {'font-weight':'bold','color':'red'};
}else if(treeNode.level==1){
return {'font-weight':'bold','color':'green'};
}else if(treeNode.level==2){
return {'font-weight':'bold','color':'blue'};
}else{
return {};
}
};

CZTestAction.java:

package com.cz.action;  

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import org.apache.struts2.ServletActionContext; import com.cz.model.TreeNode;
import com.cz.util.SqlHelper;
import com.opensymphony.xwork2.ActionSupport; public class CZTestAction extends ActionSupport{
private String id; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} /**
* @author chenzheng
* @since 2013-8-21
* @Description: ztree测试
* @throws
* @return
* String
*/
public String getZtreeData(){
System.out.println("*********"+id+"**********");
if("null".equals(id)||"".equals(id)||id==null){
id="0";
}
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;
ResultSet rs=SqlHelper.executeQuery(sql, null);
JSONArray jarray=new JSONArray();
List<TreeNode> list=new ArrayList<TreeNode>();
try {
while(rs.next()){
TreeNode tnode=new TreeNode();
tnode.setId(rs.getString(1));
tnode.setName(rs.getString(2));
tnode.setpId(rs.getString(3));
//判断当前节点是否还有子节点
if(Integer.parseInt(rs.getString(5))>0){
tnode.setIsParent(true);
tnode.setHasChild(true);
}else{
tnode.setIsParent(false);
tnode.setHasChild(false);
}
list.add(tnode);
}
} catch (SQLException e) {
e.printStackTrace();
}
jarray.addAll(list);
System.out.println(jarray.toString());
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
PrintWriter pw = null;
try {
pw = response.getWriter();
pw.write(jarray.toString());
} catch (IOException e) {
e.printStackTrace();
}
pw.flush();
pw.close();
return null;
}
}

TreeNode.java:

package com.cz.model;  

public class TreeNode {  

    private String id;
private String pId;
private String name;
private Boolean isParent;
private Boolean hasChild;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getIsParent() {
return isParent;
}
public void setIsParent(Boolean isParent) {
this.isParent = isParent;
}
public Boolean getHasChild() {
return hasChild;
}
public void setHasChild(Boolean hasChild) {
this.hasChild = hasChild;
}
}

效果图:

本文转自: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. SQL小技巧小知识

    1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...

  2. sharepoint更新多行文本webparth

    前台 <script> function Copy() { var value = document.getElementById("<%=BodyBox.ClientID ...

  3. Android Studio "diamond operator is not supported" 处理方法

    低版本的android编译环境是不支持使用java7语法的,如果使用了,就会产生上述问题,如果你的android环境较新,那么可以使用以下方法: 在build.gradle的android标签下加入以 ...

  4. 【贪心】最大乘积-贪心-高精度-java

    问题 G: [贪心]最大乘积 时间限制: 1 Sec  内存限制: 128 MB提交: 34  解决: 10[提交][状态][讨论版] 题目描述  一个正整数一般可以分为几个互不相同的自然数的和,如3 ...

  5. poj 2013 Symmetric Order 解题报告

    题目链接:http://poj.org/problem?id=2013 设长度非递减的字串序列为s[1]...s[n].设计递归子程序print(n),其中n为字串序号,每分析1个字串,n=n-1. ...

  6. javascript逻辑运算符“||”和“&&”

    一.先来说说||(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true. alert(true||false); // truealert(false||true); ...

  7. MFC dfs遍历文件

    //如果涉及到大文件的遍历(大于4GB),可以将以下代码_finddata_t换成__finddata64_t,_findfirst换成_findfirst64,_findnext换成_findnex ...

  8. 修剪花卉(codevs 1794)

    题目描述 Description ZZ对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题. 一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉 ...

  9. [译]C#控制管理VisualSVN Server

    VisualSVN Server可以用WMI接口管理(Windows Management Instrumentation). VisualSVN Server安装的计算机中,位于%VISUALSVN ...

  10. oracle DBA学习方法交流

    你想做什么数据库 Oracle? db2?我是做Oracle的 DB2帮不了你 oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一 ...