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 相关文章推荐
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
jquery ajax双击div可直接修改div中的内容
Mar 04 Javascript
浅谈js的异步执行
Oct 18 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
JavaScript 中 apply 、call 的详解
Mar 21 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
详解如何创建并发布一个 vue 组件
Nov 08 Javascript
es6数据变更同步到视图层的方法
Mar 04 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 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中cookie的作用域
2008/03/27 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php实现求相对时间函数
2015/06/15 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
jQuery实现简单滚动动画效果
2016/04/07 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
详解Vue的异步更新实现原理
2020/12/22 Vue.js
Python交换变量
2008/09/06 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
办理护照工作证明
2014/10/10 职场文书
治庸问责工作总结
2015/08/11 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android