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+ajax实现局部刷新的两种方法
Jun 08 jQuery
jQuery实现拖动效果的实例代码
Jun 25 jQuery
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 jQuery
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jQuery带控制按钮轮播图插件
Jul 31 jQuery
jQuery编写QQ简易聊天框
Aug 27 jQuery
如何基于jQuery实现五角星评分
Sep 02 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
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php实现微信发红包
2015/12/05 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
详解vuex的简单使用
2018/03/12 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
生产现场工艺工程师岗位职责
2013/11/28 职场文书
个人自我评价分享
2013/12/20 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
质量负责人岗位职责
2015/02/15 职场文书
初中英语教学反思范文
2016/02/15 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL