Jquery树控件ZTree异步加载
异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载。
这里面主要设计ztree的setting变量的async属性设置:
1 2 3 4 5 6 7 | var setting = { async: { enable: true , url:InitServiceIpsData.action, autoParam:[id, name], dataFilter: filter }, |
当点击展开树节点时,会请求url指定的action获取子节点数据,然后绑定到ztree上。
注意这里后台action返回的是JSON字符串,而ztree绑定新的节点数据只接收数组,所以需要在绑定前用filter函数进行数据清洗转换操作,将字符串转换为数组:
1 2 3 4 5 6 7 | //过滤异步加载ztree时返回的数据 function filter(treeId, parentNode, childNodes) { if (!childNodes) return null ; childNodes = eval((+childNodes+)); //必须转换为[{id:103,pId:1,name:'子节点3'}];这样的格式 return childNodes; } |
这样点击展开ztree树节点时,就会请求action获取子节点数据并绑定了。
下面是后台action的一个实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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; } |
分类:
Ztree相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix