EasyUI-Tree的使用
一、EasyUI-Tree的官方介绍
(1)基本使用的介绍


(2)异步树的使用



- 首先,载入含有树组件的页面时,会向后台发请求,请求url就是tree的url;此时是没传id过来的
- 如果没带id过来,那么把id默认设为0,然后去后台查询父id等于id的数据
- 如果带了id就直接查询父id等于id的数据
- 查询出数据来后,对数据进行封装;必须包含id,text,state属性。而且state属性是根据有没有子节点来赋值
- 将数据封装好后,返回json数据。
二、开发实战-前台

		<script type="text/javascript">
			$(function(){
				// 从远程加载树的数据
				$('#tt').tree({
				    url:'${basePath}nsfw/tree_findByPId.action',
				    lines:true
				});  
			});//end of window onload
		</script><script type="text/javascript">
            $(function(){
// 从远程加载树的数据
                $('#tt').tree({    
                    url:'${basePath}nsfw/tree_findByPId.action',
lines:true
});
});//end of window onload
</script>
    <body>
		<!-- 树容器 -->
		<ul id="tt"></ul>
	</body><body>
<!-- 树容器 -->
<ul id="tt"></ul>
</body>
三、开发实战-后台
(1)实体类代码
package com.tax.pojo.nsfw;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
 * OrgTree(用于测试EasyUI的Tree)
 * @author   ZENG.XIAO.YAN
 * @date 	 2017年8月24日 上午9:24:54
 * @version  v1.0
 */
@Entity
@Table(name="org_tree")
public class OrgTree implements Serializable {
	/** serialVersionUID */
	private static final long serialVersionUID = 6661807356404913246L;
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column
	private Integer id;
	@Column
	private String title;
	@Column(name="p_id")
	private Integer pId;
	@Column(name="is_parent")
	private boolean isParent;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public boolean getIsParent() {
		return isParent;
	}
	public void setIsParent(boolean isParent) {
		this.isParent = isParent;
	}
	public Integer getpId() {
		return pId;
	}
	public void setpId(Integer pId) {
		this.pId = pId;
	}
	// 这个2个get方法主要用于tree的数据,tree数据需要 {"id":1,"text":"root","state":"closed"}
	public String getText() {
		return getTitle();
	}
	public String getState() {
		return getIsParent() ? "closed" : "open";
	}
}package com.tax.pojo.nsfw;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* OrgTree(用于测试EasyUI的Tree)
* @author ZENG.XIAO.YAN
* @date 2017年8月24日 上午9:24:54
* @version v1.0
*/
@Entity
@Table(name="org_tree")
public class OrgTree implements Serializable {
/** serialVersionUID */
private static final long serialVersionUID = 6661807356404913246L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
private Integer id;
@Column
private String title;
@Column(name="p_id")
private Integer pId;
@Column(name="is_parent")
private boolean isParent;
    public Integer getId() {
return id;
}
    public void setId(Integer id) {
this.id = id;
}
    public String getTitle() {
return title;
}
    public void setTitle(String title) {
this.title = title;
}
    public boolean getIsParent() {
return isParent;
}
    public void setIsParent(boolean isParent) {
this.isParent = isParent;
}
    public Integer getpId() {
return pId;
}
    public void setpId(Integer pId) {
this.pId = pId;
}
    // 这个2个get方法主要用于tree的数据,tree数据需要 {"id":1,"text":"root","state":"closed"}
    public String getText() {
return getTitle();
}
    public String getState() {
return getIsParent() ? "closed" : "open";
}
}
(2)Action代码
	/** 通过树父节点id查找子节点 */
	public String findByPId() {
		if(id == null){
			id = 0;
		}
		// 通过传来的父id查询出数据
		List<OrgTree> list = orgTreeService.findListByPId(id);
		// 封装数据
		responseData = list; //这里用了struts2的json插件,且配置了root为responseData
		return SUCCESS;
	}/** 通过树父节点id查找子节点 */
    public String findByPId() {
        if(id == null){
id = 0;
}
// 通过传来的父id查询出数据
List<OrgTree> list = orgTreeService.findListByPId(id);
// 封装数据
responseData = list; //这里用了struts2的json插件,且配置了root为responseData
return SUCCESS;
}

	/** 通过树父节点id查找子节点 */
	public String findByPId() {
		if(id == null){
			id = 0;
		}
		// 通过传来的父id查询出数据
		List<OrgTree> list = orgTreeService.findListByPId(id);
		// 封装数据
		/** 上面的父id为0的话,只会显示根节点,因此我们处理下,显示根节点和一级子节点 */
		if(id == 0){
			OrgTree rootTree = list.get(0);    
            // 我们下面就把根节点的子节点查出来,封装到children属性
			List<OrgTree> childList = orgTreeService.findListByPId(rootTree.getId());
			responseData = new ArrayList();
			HashMap<String,Object> map = new HashMap<>();
			map.put("id", rootTree.getId());
			map.put("text", rootTree.getText());
			map.put("state", "open");
			map.put("children", childList);
			responseData.add(map);
		}else{
			responseData = list;
		}
		return SUCCESS;
	}/** 通过树父节点id查找子节点 */
    public String findByPId() {
        if(id == null){
id = 0;
}
// 通过传来的父id查询出数据
List<OrgTree> list = orgTreeService.findListByPId(id);
// 封装数据
/** 上面的父id为0的话,只会显示根节点,因此我们处理下,显示根节点和一级子节点 */
        if(id == 0){
OrgTree rootTree = list.get(0);
// 我们下面就把根节点的子节点查出来,封装到children属性
List<OrgTree> childList = orgTreeService.findListByPId(rootTree.getId());
responseData = new ArrayList();
HashMap<String,Object> map = new HashMap<>();
            map.put("id", rootTree.getId());
            map.put("text", rootTree.getText());
            map.put("state", "open");
            map.put("children", childList);
responseData.add(map);
        }else{
responseData = list;
}
return SUCCESS;
}
 
四、开发实战-前台刷新tree的节点的处理
			// 用于刷新节点,是window的方法,可跨freamset调用
			function targetTreeReload(node){
				// 如果node.target为undefined说明传的是id
				if(node.target == undefined){
					// 需要通过id找到节点(node此时是id),然后重新赋值给node
					node = $('#tt').tree('find', node);
				}
				var parentNode = $("#tt").tree("getParent",node.target);
				alert(parentNode);
				// node.target表示该节点的DOM对象
				if(parentNode == null){
					// 为null代表当前节点已经是根节点了
					$("#tt").tree("reload",node.target);
				}else{
					$("#tt").tree("reload",parentNode.target);
				}
			}// 用于刷新节点,是window的方法,可跨freamset调用
            function targetTreeReload(node){
// 如果node.target为undefined说明传的是id
                if(node.target == undefined){
// 需要通过id找到节点(node此时是id),然后重新赋值给node
                    node = $('#tt').tree('find', node);
}
                var parentNode = $("#tt").tree("getParent",node.target); 
alert(parentNode);
// node.target表示该节点的DOM对象
                if(parentNode == null){
// 为null代表当前节点已经是根节点了
                    $("#tt").tree("reload",node.target);
                }else{
                    $("#tt").tree("reload",parentNode.target);
}
}
EasyUI-Tree的使用的更多相关文章
- Easyui Tree方法扩展 - getLevel(获取节点级别)
		Easyui Tree一直就没有提供这个方法,以前没有用到,所以一直没怎么在意,这次自己用到了,顺便扩展了一个方法,分享给大家. $.extend($.fn.tree.methods, { getLe ... 
- [转]easyui tree 模仿ztree 使用扁平化加载json
		原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.h ... 
- 【项目经验】EasyUI Tree
		ITOO5.0开始了,我参加了伟大的基础系统,从整体上来说,基础系统有三个职能: 1.自己的核心职能--选课(公共选修课,专业选修课),课表: 2.为其他系统提供真实数据: 3.维护信息 而近两三天, ... 
- Jquery EasyUI Tree .net实例
		图片: 针对tree: 数据库: CREATE TABLE [dbo].[SystemModel]( [Id] [,) NOT NULL, [Name] [nvarchar]() NULL, [Fat ... 
- Jquery easyui Tree的简单使用
		Jquery easyui Tree的简单使用 Jquery easyui 是jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻 ... 
- Jquery easyui tree的使用
		这个ui用的一切都是json数据.树也是如此! 后台需要返回与格式匹配的json数据才能正确加载树. 页面定义一个ui: <ul id="messageInfoAddTree" ... 
- EasyUI Tree判断节点是否是叶
		方法1: $('#domaincatalog').tree('isLeaf', node.target); 返回true或false ,true表示是叶节点, false即不是 方法2:官方文档中: ... 
- 原创: EasyUI  Tree 最后一级 节点 横向排列
		原创: EasyUI Tree 最后一级 节点 横向排列 转载请指明出处 必须要写在: onLoadSuccess 事件中 ddAuthTree.tree({ lines: true, checkb ... 
- EasyUI –tree、combotree学习总结
		EasyUI –tree.combotree学习总结 一. tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ... 
- Easyui tree 开启拖放后 在IE下 性能惨不忍睹
		项目中加载一个树结构代码如下 //加载树 function LoadTree() { var url = "../Ajax/StationTree.ashx?showVirtual=1&qu ... 
随机推荐
- PRD文档怎么写
			昨天学习PMP的相关文档,正好看到里面讲的PRD文档是怎么写的 就把一些学习过程,思维方式,还有用到的工具给记录下来 方便自己以后需要的时候,再去查阅,再读这个教程的时候,我顺便用脑图画了一下 脑图工 ... 
- [经典Bug]Android-初始化闪屏不消失
			问题描述: 业务上初始化过程要求显示闪屏界面,某个版本更新后,发现部分场景下,初始化完成后闪屏界面不消失. 问题原因: 初始化是在子线程进行,闪屏属于UI界面,需要UI线程展示.初始化过程和闪屏显示在 ... 
- LeetCode题解之Copy List with Random Pointer
			1.题目描述 2.问题分析 首先要完成一个普通的单链表的深度复制,然后将一个旧的单链表和新的单链表的节点使用map对应起来,最后,做一次遍历即可. 3.代码 RandomListNode *copyR ... 
- 分享今天在客户那里遇到的SQLSERVER连接超时以及我的解决办法
			分享今天在客户那里遇到的SQLSERVER连接超时以及我的解决办法 客户的环境:SQLSERVER2005,WINDOWS2003 SP2 32位 这次发生连接超时的时间是2013-8-5 21: ... 
- jbosscache
			JBossCache 讲解说明 是什么? 一个树形结构.支持集群.支持事务的缓存技术. 有什么作用? JBoss Cache是针对Java应用的企业级集群解决方案,其目的是通过缓存需要频繁访问的Jav ... 
- CSS|  text文本属性
			注意:一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素,图像之类的替换元素上也无法应用 text-indent 1) text-indent 取值: 5px/2 ... 
- wget 的 使用方法
			问题: 最近在使用 wget ,感觉有很多的功能都不会,现在进行写一篇文章,更新一些wget的使用技巧,防止以后忘记的时候,重新回来进行查阅. 正文: 现在经常使用: curl -O url 下载文件 ... 
- windows10下安装source insight 4.0(破解版)
			1.从官网下载source insight4.0版本(不用下载,在后面已经把所有需要的文件都准备好了); 2.安装source insightt4.0; 3.使用下载好的sourceinsight4. ... 
- [ML学习笔记] XGBoost算法
			[ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ... 
- FZU Monthly-201903 tutorial
			FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. D ... 
