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 相关文章推荐
解决jquery中美元符号命名冲突问题
Jan 08 Javascript
JavaScript参数个数可变的函数举例说明
Oct 10 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
Javascript数组Array方法解读
Mar 13 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
js中less常用的方法小结
Aug 09 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
JS中的一些常用的函数式编程术语
Jun 15 Javascript
layui实现数据表格点击搜索功能
Mar 26 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 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自动生成印有用户信息的名片
2016/08/01 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
常用简易JavaScript函数
2009/04/09 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
Python中flatten( )函数及函数用法详解
2018/11/02 Python
详解用python写一个抽奖程序
2019/05/10 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
大一学生的职业生涯规划书范文
2014/01/19 职场文书
大学生党员自我批评
2014/02/14 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年党员个人自我评价
2015/03/03 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python
使用Python获取字典键对应值的方法
2022/04/26 Python
python的html标准库
2022/04/29 Python
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle