1.页面中准备树的div

<div class="user_left_tree_info">
<div class="user_left_tree_info_title">部门</div>
<div class="hr"></div>
<div class="ztree" id="treeDemo"></div>
</div>

2.页面加载时候请求树:

searchUnitTree();
/**
* 请求树信息
*/
function searchUnitTree(){
$.ajax({
type : "post",
target : "#treeDemo",
dataType : "json",
url : "searchTreeAction2.action",
success : getTree
});
} /**
* 生成树
*/
function getTree(treeList2){
var treeList3 = eval("(" + treeList2 + ")");
var setting = {
data : {
simpleData : {
enable : true,
idKey: "unitId",
pIdKey: "upUnitId",
rootPId : "10",
},
key : {
name : "unitName",
}
},
callback : {
onClick : onClick
}
};
var zNodes = treeList3; //添加 树节点的 点击事件;
var log, className = "dark";
function onClick(event, treeId, treeNode, clickFlag) {
clickOnTree(event, treeId, treeNode, clickFlag);
}
$.fn.zTree.init($("#treeDemo"), setting, zNodes); var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
treeObj.expandAll(true);
} /**
* 点击树节点的同时,将该部门信息对应的部门编号,部门名称,上级部门编号,上级部门名称保存下来
*/
function clickOnTree(event, treeId, treeNode, clickFlag){
//得到该节点的部门编号和部门名字
document.getElementById("bt_unitId").value = treeNode.unitId;
document.getElementById("bt_unitName").value = treeNode.unitName;
/*alert(treeNode.unitId);
alert(treeNode.unitName);*/
if (treeNode.unitId == "10") {
//如果本节点是根节点,那么就不能执行更新和删除操作
$("#unit_change,#unit_delete").attr("disabled","disabled");
} else {
//如果本节点不是根节点,就可以执行更新和删除操作
$("#unit_change,#unit_delete").removeAttr("disabled");
//父节点
var fatherNode=treeNode.getParentNode();
/*alert(fatherNode.unitId);
alert(fatherNode.unitName);*/
//得到父节点的部门编号和部门名称
document.getElementById("bt_upUnitId").value = fatherNode.unitId;
document.getElementById("bt_upUnitName").value = fatherNode.unitName;
}
searchUnit();
} /**
* 点击一下树节点表格输出下级节点的部门信息
*/
function searchUnit() {
$.ajax({
type : "post",
dataType : "json",
url : "searchUnitByUpId.action",
data : {
upUnitId : $("#bt_unitId").val(),
},
success : showTable
});
}

3.后台传JSON串

public String  searchTree(){
try {
this.treeList =unitService.getUnitTree2();
} catch (SQLException e) {
e.printStackTrace();
}
JSONArray jsonArray = JSONArray.fromObject(treeList);
this.treeList2 = jsonArray.toString();
return SUCCESS;
}

结果:

[{"upUnitId":"","unitName":"中心","unitId":"10"},{"upUnitId":"10","unitName":"人才","unitId":"10001"},{"upUnitId":"10","unitName":"项部","unitId":"10002"},{"upUnitId":"10","unitName":"成果","unitId":"10003"},{"upUnitId":"10","unitName":"SS","unitId":"10009"}]

JSON数据生成树——(四)的更多相关文章

  1. (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)

    上一次老师让我们用递归将中国城市镇县四级联动 显示在树上,那个时候就知道可以显示在zTree上,可是苦于对Json的不了解,对zTree的Api的不了解,一直没有做出来,只好将递归算法显示在了窗体上, ...

  2. spring mvc 返回json数据的四种方式

    一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...

  3. MVC4中EasyUI Tree异步加载JSON数据生成树

      1,首先构造tree接受的格式化数据结构MODEL /// <summary> /// 定义EasyUI树的相关数据,方便控制器生成Json数据进行传递 /// </summar ...

  4. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...

  5. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 场景模拟 接上一篇, JD SKU对应的店铺信息是异步加载 ...

  6. Python中xml、字典、json、类四种数据的转换

    最近学python,觉得python很强很大很强大,写一个学习随笔,当作留念注:xml.字典.json.类四种数据的转换,从左到右依次转换,即xml要转换为类时,先将xml转换为字典,再将字典转换为j ...

  7. Java创建和解析Json数据方法(四)——json-lib包的使用

    (四)json-lib包的使用         既然json-lib包比org.json包重量级,那么json-lib包肯定有很多org.json包没有的类和方法,这篇笔记简单记录json-lib包中 ...

  8. [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. 四、Delphi10.3读取JSON数据

    一.我们有一段JSON数据如下: { "五班": [ { "姓名": "张三", "成绩": 75.5 }, { &qu ...

随机推荐

  1. Windows系统下搭建Appium自动化测试框架

    简介 一种开源的测试框架(http://appium.io/) 能够用来测试原生Android/iOS应用.混合应用以及webapp 通过webdriver协议来操作应用,其核心是一个web服务器,接 ...

  2. C# 房贷计算器

    设计背景 百度小程序中的房贷计算器不能满足我个人的需求,故而开发一个.NET小程序.希望后期能用JS重写,发布在网上供大家使用. 设计思路 根据百度公式:等额本息月还款 = [贷款本金×月利率×(1+ ...

  3. 1.红黑树和自平衡二叉(查找)树区别 2.红黑树与B树的区别

    1.红黑树和自平衡二叉(查找)树区别 1.红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单. 2.平衡 ...

  4. IoT固/软件更新及开源选项

    会出什么问题呢?大多数这些设备的设计都不像是被恶意攻击的目标. 嵌入式系统传统上被认为是稳定的产品, 但实施起来成本高昂, 因为投资回报率(ROI)在的周期比较长. 在过去一旦发货, 就很少需要更新这 ...

  5. 【转】__ATTRIBUTE__ 你知多少

    __ATTRIBUTE__ 你知多少? GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(V ...

  6. [Vani有约会]雨天的尾巴——树上差分+动态开点线段树合并

    题目描述 首先村落里的一共有n座房屋,并形成一个树状结构.然后救济粮分m次发放,每次选择两个房屋(x,y),然后对于x到y的路径上(含x和y)每座房子里发放一袋z类型的救济粮. 然后深绘里想知道,当所 ...

  7. 求n个数中前k个数,按之前的顺序输出(HK IPM)

    For smaller k: #include <cstdio> #include <cstdlib> #include <cstring> #include &l ...

  8. SystemV-IPC

    这里记录的三种SystemV-IPC包括(消息队列,信号量以及共享内存) 1:标识符和键值 键值(key_t) : IPC结构的外部名(所谓外部名就是各用户进程可获得并操作的,通过它使用XXXget获 ...

  9. 最短路径算法的实现(dijskstra):Python

    dijskstra最短路径算法步骤: 输入:图G=(V(G),E(G))有一个源顶点S和一个汇顶点t,以及对所有的边ij属于E(G)的非负边长出cij. 输出:G从s到t的最短路径的长度. 第0步:从 ...

  10. sql service ---- update和delete 误操作数据 ---- 恢复数据

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的 ...