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 submit()不能提交表单的解决方法
Apr 24 jQuery
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
jquery自定义显示消息数量
Dec 19 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
详解JQuery基础动画操作
Apr 12 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
jQuery实现tab栏切换效果
Dec 22 jQuery
jQuery实现简单轮播图效果
Dec 27 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 闭包特性在实际应用中的问题
2009/10/30 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
Angular封装表单控件及思想总结
2019/12/11 Javascript
Python的Django框架中settings文件的部署建议
2015/05/30 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
银行实习自我鉴定
2013/10/12 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
会计岗位职责模板
2014/03/12 职场文书
计算机求职信
2014/07/02 职场文书
购房意向书
2014/08/30 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
公安机关起诉意见书
2015/05/20 职场文书
七一晚会主持词
2015/06/29 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js