jquery树形插件zTree高级使用详解


Posted in jQuery onAugust 16, 2019

使用高级zTree进行对属性结构进行操作的时候,做好的方式是参考官网的API文档。

本文简单介绍下如何通过后台传递过来一个树形结构的树,并且通过页面进行加载。

【与后台交互步骤】1、编写页面,引入zTree相关插件;2、编写js脚本,设定树形结构的基本属性;3、编写zTree的PO对象;4、编写返回属性结构的方法(json格式返回);5、页面请求树。

1、引入zTree相关的插件:

<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/jquery-1.9.1.min.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/css/bootstrap.min.css" > 
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/js/bootstrap.min.js"></script>
 
<!-- 引入zTree相关的js/css文件 -->
<link rel="stylesheet" href="<%=request.getContextPath() %>/resources/ztree/zTreeStyle/zTreeStyle.css" >
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/ztree/jquery.ztree.all.js"></script>

2、编写js脚本,设定树形结构的基本属性

// zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解)
 var setting = {
 check:{
 enable: false,
 //autoCheckTrigger:true,
 //chkStyle:"none"
 },
 callback:{
 onClick:queryRoleByEmployee
 }
 };
function queryRoleByEmployee(event, treeId, treeNode){
 //console.info(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
 //console.info("--------"+treeNode.isParent);
 if(treeNode.isParent == true){
 //将角色的树形结构清楚
 $.fn.zTree.destroy("roleTree");
 return ;
 }
 $.get('<%=request.getContextPath()%>/'+treeNode.objCode+'/role',{"coddd":treeNode.isParent},function(data){
 console.info(data);
 zTreeObj = $.fn.zTree.init($("#roleTree"), settingRole, data);
 });
 }

3、编写zTree的PO对象

public class DimsTree {
 
 //除了树本身的属性,还可以自定义属性.
private Object objCode;
 
 //树形结构展示的名称
 private String name;
 
 //是否打开属性
 private String open;
 
 //是否根节点
 private boolean isParent;
 
 //url
 private String url;
 
 //子节点
 private List<DimsTree> children;
 
 //是否被选中
 private boolean checked;
//省略gettings和settings方法
}

4、编写返回属性结构的方法(json格式返回)

@ResponseBody
 @RequestMapping(value="/user_role1")
 public List<DimsTree> userRole1(Model model){
 //宿舍信息Tree
 List<DimsTree> dimsTreeList = new ArrayList<DimsTree>();
 //加载用户信息列表,手链需要加载宿舍信息,将用户信息加入到宿舍信息中.
 List<Dormitory> dormitoiryList = dormitoryDao.list();
 for(Dormitory dorm: dormitoiryList){
 DimsTree dt = new DimsTree();
 dt.setName(dorm.getDormCode());
 dt.setParent(true);//根节点
 dt.setObjCode(dorm.getDormCode());
 dt.setChildren(employee2DimsTree(dorm));
 dimsTreeList.add(dt);
 }
 
 model.addAttribute(dimsTreeList);
 //加载角色信息列表,对已经选中的角色进行设置checked=true属性。
 //这个应该设置成异步加载的方式,根据不同的用户查询不同的角色信息.
 logger.info("-------------->"+dimsTreeList);
 return dimsTreeList;
// return "other/user_role";
 }
 
 /**
  * 根据宿舍,查询宿舍下的成员
  * @param dorm
  * @return
  */
 public List<DimsTree> employee2DimsTree(Dormitory dorm){
  //这个应该是在service层进行实现得 
  String sql = "select * from t_employee t where t.dorm_code = ?";
  logger.info("----------->查询人员宿舍信息参数:"+dorm.getDormCode());
  List<Employee> employeeList = employeeDao.listBySql(sql, new Object[]{dorm.getDormCode()});
  List<DimsTree> dimsTreeList = new ArrayList<DimsTree>();
  for(Employee ee : employeeList){
   DimsTree dt = new DimsTree();
   dt.setName(ee.geteName());
   dt.setParent(false);
   dt.setObjCode(ee.getUstcAccount());
   dimsTreeList.add(dt);
  }
  return dimsTreeList;
 }

5、页面请求树

$(document).ready(function(){
 $.get('<%=request.getContextPath()%>/user_role1', function(data){
  console.info(data);
  //zNodes = data;
  zTreeObj = $.fn.zTree.init($("#dormitoryTree"), setting, data);
 });
 //console.info($.fn.zTree.getZTreeObj("dormitoryTree"));
 //console.info(zTreeObj.getNodes());
 });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery响应滚动条事件功能示例
Oct 14 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
jquery实现上传图片功能
Jun 29 jQuery
jQuery zTree树插件的使用教程
Aug 16 #jQuery
jQuery zTree插件快速实现目录树
Aug 16 #jQuery
jQuery zTree插件使用简单教程
Aug 16 #jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 #jQuery
jQuery提示框插件SweetAlert用法分析
Aug 05 #jQuery
jQuery实现的记住帐号密码功能完整示例
Aug 03 #jQuery
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 #jQuery
You might like
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
php生成随机颜色的方法
2014/11/13 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
深入解析Python中的WSGI接口
2015/05/11 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
django中forms组件的使用与注意
2019/07/08 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
教师自荐信范文
2013/12/09 职场文书
离职保密承诺书
2014/05/28 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年司法局工作总结
2015/05/22 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
公司借款担保书
2015/09/22 职场文书
公司岗位说明书
2015/10/08 职场文书
观看《信仰》心得体会
2016/01/15 职场文书