zTree初体验(二)——再续前缘

上篇文章简介了下zTree,以及简单实现。本篇书接上文,进行一下扩展,来看一下怎么从后台获取简单格式Json数据。

1). 我们就以项目中的部门组织结构为例,先从Manager层的方法开始。为了便于转Json,采用的是map形式的hql语句,这样出来的数据,是标准的key-value形式。

/**
 * map的形式加载所有的部门
 * @return	List<DepTree>
 * 			部门的List集合
 * @author	张连海
 * @since	2015.07.10
 */
@SuppressWarnings("unchecked")
public List<DepTree> getDepTree() {
	String hql = "select new map(id as id,departName as departName,parentId as parentId) from Department";
	List<DepTree> list = dao.find(hql);	// 调用底层封装的find()方法,执行查询
	return list;
}

2). 接下来,就是action中的方法,主要是把获取到的List<DepTree>转成Json字符串,并传给前台页面。

/**
 * 加载全部部门
 *
 * @return	null
 * @throws 	Exception
 * @author	张连海
 * @since	2015.07.10
 */
public String listByAjax() throws Exception {
	List<DepTree> listTree = departmentManager.getDepTree();// 调用Manager的方法,获取List<DepTree>数据
	JSONArray json = JSONArray.fromObject(listTree);		// 把List<DepTree>转为JSONArray对象
	renderText(json.toString());							// 转成Json字符串,并传给前台
	return null;
}

3). 最后,就是页面jsp中的数据显示了。

<script type="text/javascript">
	$(function() {
		var setting = {
			data : {
				simpleData : {
					enable : true,
					idKey : "id",		// 结点的id,对应到Json中的id
					pIdKey : "parentId",// 结点的pId,对应到Json中的parentId
					rootPId : 0			// 根节点设置为0
				},
				key : {
					name : "departName"	// 结点显示的name属性,对应到Json中的departName
				}
			},
			view : {
				dblClickExpand : false,	// 禁止双击展开
				selectedMulti : false	// 禁止多选
			},
			async : {
				enable : true,	// 采用异步方式获取所有节点数据,默认false
				url : "test!listByAjax.action"
			}
		};
		$.fn.zTree.init($("#tree"), setting);
});
</script>

可以看出,这已经是异步加载了,只不过是一次性把所有数据都拿了过来。

看了好多网上从台加载数据的资料,无不是自己手写了一个ajax从后如获取到数据,然后把数据给zTree进行初始化显示出来。其实zTree已经提供“async”这个属性,只要进行简单配置,就能显示出来。

4). 看一看效果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-24 13:00:31

zTree初体验(二)——再续前缘的相关文章

Swift初体验(二)

// 函数写法初体验 func getMyName(firstName first:String, lastName last:String) -> String{ //return first + "-" + last return first + last } var myName = getMyName(firstName: "hu", lastName: "mingtao") println("myName = \(myN

zTree初体验--MVC linq动态多条件OR查询

工作需要,使用zTree实现了一个点击显示下拉复选框列表选中项作为查询条件的功能.简单记录下菜鸟级开发历程. zTree:是一个依靠jQuery实现的多功能树控件.通过简单引用配置就可使用. 具体使用: (1).脚本.样式引用 注意:引用顺序,zTree.js一定放最后. <link rel="stylesheet" href="@Url.Content("~/Scripts/jquery.plugins/zTree/zTreeStyle.css")

Jquery初体验二

一.传统方式生成Table var peopleArr = [ { "name": "刘欢", "age": 50, "skill": "从头再来" }, { "name": "杨坤", "age": 35, "skill": "32唱演唱会" }, { "name": "那英&

zTree初体验(一)——小试牛刀

zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大长处. --zTree官网 zTree v3.0 将核心代码依照功能进行了切割,不须要的代码能够不用载入 採用了 延迟载入 技术,上万节点轻松载入,即使在 IE6 下也能基本做到秒杀 兼容 IE.FireFox.Chrome.Opera.Safari 等浏览器 支持 JSON 数据 支持静态 和 Ajax 异步载入节点数据 支持随意更换皮肤 / 自己定义图标(依靠c

Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现

一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> <type>pom.sha256</type> </depend

oracle初体验二

上期中创建完数据库实例,但是最后使用em访问数据库实例的时候出现了一个问题? Enterprise Manager 无法连接到数据库实例.下面列出了组件的状态. 回答上面的问题请看以下oracle的结构: 客户使用浏览器通过EM的1158端口访问EM,EM通过监听访问oracle数据库实例,上节中我们通过数据库配置助手(Database Configuraion Assistant)创建了数据库实例,但我们还没有创建监听.所以就出现了上节最后提出的问题.这节中我们将通过oracle网络配置助手(

jquery.fn.extend与jquery.extend--(初体验二)

1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jquery.fn.extend(object);给jQuery对象添加方法. $.extend({ add:function(a,b){return a+b;} }); //$.add(3,4); //return 7 jQuery添加一个为 add的“静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了. 2.jQuery.fn.extend(object); 对jQuery.pro

XenApp / XenDesktop 7.6 初体验二 配置计算机目录和交付组

前面我已经安装了XenDesktop/Xenapp 7.6, 并且配置了Site 和License. 接下来豆子打算配置 Machine Catalogs (计算机目录)和 Delivery Group (交付组). 首先,我先在一台作为模板的计算机上安装VDA,方法很简单,加载ISO 选择 Create a Master Image 选择 Delivery Controller的地址 默认选项 自动配置windows防火墙 开始安装 中途会重启一次 继续安装 Ok.装完了VDA,我们打开Stu

Java8初体验(二)Stream语法详解

原文链接:http://ifeve.com/stream/ 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel aggregate operations. 我们来解读一下上面的那句话: Stream是元素的集合,这点让Stream看起来用些类似Iterator: 可以支持顺序和并行的对原Stream进行汇聚的操作: 大家可以把Stream当成一个高级版本的