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加密密码到cookie的实现代码
Apr 18 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
jQuery超简单遮罩层实现方法示例
Sep 06 jQuery
AJAX在JQuery中的应用详解
Jan 30 jQuery
jQuery实现轮播图效果demo
Jan 11 jQuery
jquery实现垂直手风琴菜单
Mar 04 jQuery
jQuery 动态粒子效果示例代码
Jul 07 jQuery
jquery实现有过渡效果的tab切换
Jul 17 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
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php ios推送(代码)
2013/07/01 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP中cookie知识点学习
2018/05/06 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
python如何获取服务器硬件信息
2017/05/11 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
个人四风问题原因分析及整改措施
2014/09/28 职场文书
材料采购员岗位职责
2015/04/03 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
观后感开头
2015/06/19 职场文书
结婚纪念日感言
2015/08/01 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
git stash(储藏)的用法总结
2022/06/25 Servers
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers