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 globalStorage类代码
Jun 04 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
js 中{},[]中括号,大括号使用详解
May 12 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
jquery实现对联广告的方法
Feb 05 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
js array数组对象操作方法汇总
Mar 18 Javascript
微信小程序缓存支持二次开发封装实现解析
Dec 16 Javascript
vue.js封装switch开关组件的操作
Oct 26 Javascript
微信小程序向Java后台传输参数的方法实现
Dec 10 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 $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
php创建session的方法实例详解
2015/01/27 PHP
php简单防盗链实现方法
2015/07/29 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
浅析Python 中整型对象存储的位置
2016/05/16 Python
python实现微信小程序自动回复
2018/09/10 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
灵泰克Java笔试题
2016/01/09 面试题
研究生毕业自我鉴定范文
2014/03/27 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android