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去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 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运行时强制显示出错信息的代码
2011/04/20 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
python中怎么表示空值
2020/06/19 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
应届生体育教师自荐信
2013/10/03 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
揠苗助长教学反思
2014/02/04 职场文书
个人安全承诺书
2014/05/22 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技