Jquery zTree 树控件异步加载操作


Posted in Javascript onFebruary 25, 2016

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件

  • 兼容 IE、FireFox、Chrome 等浏览器
  • 在一个页面内可同时生成多个 Tree 实例
  • 支持 JSON 数据
  • 支持一次性静态生成 和 Ajax 异步加载 两种方式
  • 支持多种事件响应及反馈
  • 支持 Tree 的节点移动、编辑、删除
  • 支持任意更换皮肤 / 个性化图标(依靠css)
  • 支持极其灵活的 checkbox 或 radio 选择功能
  • 简单的参数配置实现 灵活多变的功能

Jquery zTree 树控件异步加载操作

异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载。

这里面主要设计ztree的setting变量的async属性设置:

var setting = {
 async: {
  enable: true,
  url:InitServiceIpsData.action,
  autoParam:[id, name],
  dataFilter: filter 
 },

当点击展开树节点时,会请求url指定的action获取子节点数据,然后绑定到ztree上。

注意这里后台action返回的是JSON字符串,而ztree绑定新的节点数据只接收数组,所以需要在绑定前用filter函数进行数据清洗转换操作,将字符串转换为数组:

//过滤异步加载ztree时返回的数据 
 function filter(treeId, parentNode, childNodes) {
 if (!childNodes) 
  return null; 
 childNodes = eval((+childNodes+)); //必须转换为[{id:103,pId:1,name:'子节点3'}];这样的格式 
 return childNodes;
 }

这样点击展开ztree树节点时,就会请求action获取子节点数据并绑定了。 

下面是后台action的一个实现:

public String InitServiceIpsData()
 {
 HttpServletRequest request = ServletActionContext.getRequest();
 String id = request.getParameter(id);
 String name = request.getParameter(name);
 System.out.println(请求获取+name+的ip列表);
  
 List<hashmap<string,object>> list = new ArrayList<hashmap<string,object>>();  
 for(int i = 1; i <= 2; i++){ 
  HashMap<string,object> hm = new HashMap<string,object>();  
  hm.put(id, id + 0 + i);
  hm.put(pId, id);
  hm.put(name, name + _IP_ + i);
  hm.put(isParent, false);
  list.add(hm);
 } 
  
 JSONArray finalJson = JSONArray.fromObject(list);
 this.initServiceIpsData = finalJson.toString();
 return SUCCESS;
 }</string,object></string,object></hashmap<string,object></hashmap<string,object>

更多关于ztree控件的内容,请参考专题《jQuery插件ztree使用汇总》

以上就是Jquery zTree 树控件实现异步加载操作的详细步骤,希望对大家的学习有所帮助。

Javascript 相关文章推荐
如何用javascript判断录入的日期是否合法
Jan 08 Javascript
jquery miniui 教程 表格控件 合并单元格应用
Nov 25 Javascript
JavaScript实现表格排序方法
Jun 14 Javascript
javascript实现2048游戏示例
May 04 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 Javascript
原生JS运动实现轮播图
Jan 02 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 #Javascript
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 #Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 #Javascript
jquery zTree异步加载简单实例讲解
Feb 25 #Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 #Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
You might like
PHP禁止页面缓存的代码
2011/10/23 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
使用python实现省市三级菜单效果
2016/01/20 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python进程和线程用法知识点总结
2019/05/28 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python中time包实例详解
2021/02/02 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
护理专业自荐信范文
2014/02/26 职场文书
简单的项目建议书模板
2014/03/12 职场文书
设计顾问服务计划书
2014/05/04 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
离婚协议书格式
2014/11/21 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
教师创先争优承诺书
2015/04/27 职场文书
汶川大地震感悟
2015/08/10 职场文书
关于车尾的标语大全
2015/08/11 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js