首页 > 代码库 > Jquery树控件ZTree异步加载
Jquery树控件ZTree异步加载
转载请注明出处:jiq?钦‘s technical Blog
异步加载的意思就是: 当点击展开树节点时,才去请求后台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 = http://www.mamicode.com/finalJson.toString();>
Jquery树控件ZTree异步加载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。