一、扩展原因
ztree使用了一种扁平化的数据加载方式,就是id(自身id),pid(父id)的方式,参考 http://www.ztree.me/v3/demo.php#_102,于是扩展easyui tree 也使用这种亲民的方式;
二、基本方法
1,载入扩展文件
2,在JS中实例化TREE
三、具体方法(easyui1.4.1下测试可用)
1,载入扩展JS
//自定义loadFilter的实现 $.fn.tree.defaults.loadFilter = function (data, parent) { var opt = $(this).data().tree.options; var idFiled, textFiled, parentField; if (opt.parentField) { idFiled = opt.idFiled || 'id'; textFiled = opt.textFiled || 'text'; parentField = opt.parentField; var i, l, treeData = [], tmpMap = []; for (i = 0, l = data.length; i < l; i++) { tmpMap[data[i][idFiled]] = data[i]; } for (i = 0, l = data.length; i < l; i++) { if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) { if (!tmpMap[data[i][parentField]]['children']) tmpMap[data[i][parentField]]['children'] = []; data[i]['text'] = data[i][textFiled]; tmpMap[data[i][parentField]]['children'].push(data[i]); } else { data[i]['text'] = data[i][textFiled]; treeData.push(data[i]); } } return treeData; } return data; };
//实例化。这里增加了三个属性,可以指定idFiled,textFiled和parentField。所以这里的simpleData可以不严格转换成tree的数据格式。 $(function(){ $('#tt3').tree({ checkbox: true, url: 'tree_data_simp.json', parentField:"pid", textFiled:"name", idFiled:"key" }); });
json文件:
[ { "key": 1, "name": "Folder1", "iconCls": "icon-ok" }, { "key": 2, "pid": 1, "name": "File1", "checked": true }, { "key": 3, "pid": 1, "name": "Folder2", "state": "open" }, { "key": 4, "pid": 3, "name": "File3", "attributes": { "p1": "value1", "p2": "value2" }, "checked": true, "iconCls": "icon-reload" }, { "key": 8, "pid": 3, "name": "Async Folder" }, { "key": 9, "name": "language", "state": "closed" }, { "key": "j1", "pid": 9, "name": "Java" }, { "key": "j2", "pid": 9, "name": "C#" } ]
相关推荐
使用这个函数,你可以轻松地将任何层次结构的JSON数据转换为适用于EasyUI TreeGrid的格式。在实际应用中,你可能需要根据具体的数据结构和需求对这个函数进行调整。 在提供的`easyui-treegrid-json.zip`压缩包中,...
在`getInfo.php`中,根据接收到的ID查询数据库,返回包含图片URL和批注的JSON数据。然后在前端,可以使用这些数据来动态加载图片和展示批注信息。 总结起来,“easyui tree 三帧界面”是一种常见的Web应用布局,它...
在 EasyUI 中,"Tree" 是一个重要的组件,常用于展示层级结构的数据,如组织架构、文件目录等。本例子是关于如何使用 EasyUI 来生成一个简单的树形结构,非常适合初学者学习。 首先,我们需要理解 EasyUI Tree 的...
本文将详细介绍如何使用jQuery结合EasyUI库中的Tree组件实现对JSON数据的异步加载以生成树状结构,并对实现细节进行深入讲解。这个技术点在现代Web开发中非常常见,特别是在需要处理具有层级关系的数据时,如菜单、...
通过这个机制,Tree控件能够动态地从服务器端获取节点信息,并根据返回的JSON数据递归地构建出完整的树形结构。 知识点五:事件处理 EasyUI Tree控件提供了丰富的事件处理器,例如onClick和onLoadSuccess事件,这些...
4. 数据解析:前端接收到响应后,Tree组件会自动解析JSON数据,生成对应的树结构。如果数据包含操作状态,Tree会根据这些状态更新视图。 四、示例代码 以下是一个简单的SpringMVC Controller示例,用于返回Tree的...
本文将详细介绍如何使用Jquery EasyUI的tree组件实现异步加载,即将遍历指定的文件夹,并根据文件夹内的文件和子文件夹动态生成tree结构。 在讲解Jquery EasyUI tree的异步加载之前,需要理解tree组件的基本概念。...
通过合理配置`tree`组件,结合后端动态生成的JSON数据,可以实现高效、灵活的异步加载效果。在实际开发中,还要注意优化请求性能,如缓存已加载的节点,避免重复请求,以及处理好网络延迟等问题,以达到最佳效果。
例如,如果希望某个节点默认展开,可以在JSON数据中设置`state`为`'open'`。 ### 6. 节点操作 EasyUI的树菜单提供了丰富的API方法,如`expandNode`用于展开指定节点,`collapseNode`用于折叠节点,`selectNode`...
4. **响应式设计**:EasyUI的组件可以根据JSON数据动态调整自身大小和状态,比如在数据量变化时自动分页。 5. **数据操作**:EasyUI还支持对JSON数据的增删改查操作,如表格的编辑、删除功能,可以通过JSON数据与...
可能的实现方式是通过后台代码(C# 或 VB.NET)动态生成 JSON 数据,然后在前台用 JavaScript 调用 easyui 的 `$.fn.tree.loadData` 方法将数据加载到 Tree 控件中。 4. **ProcessFile** "ProcessFile" 这个文件名...
- 处理 AJAX 回调,将返回的数据格式化为 Tree 能识别的 JSON 格式,然后调用 `reload` 方法更新树节点。 - 对于 DataGrid,配置其 `url` 属性,与 Tree 结合时,可以通过 Tree 的 `onClick` 事件触发 AJAX 请求,...
在实现***返回JSON数据给easyui控件时,常见问题包括数据格式不正确或前后端的数据交互不顺畅等。比如,easyui的combobox控件在使用data-options时,需要指定一个URL来获取数据,但如果返回的数据中包含了HTML代码,...
3. 将TreeNode对象转换为JSON格式,因为EasyUI的ComTree组件需要JSON数据来渲染树形结构。 4. 在JavaScript中,设置ComTree的配置项,如url(指向返回JSON数据的服务器端接口)和其他自定义选项。 5. 调用`$.fn.tree...
在EasyUI的异步加载中,SpringMVC的控制器将处理来自`tree`组件的请求,根据请求参数查询数据库,生成JSON格式的响应数据。 4. **联动效果**:在描述中提到了`tree`和`accordion`的联动效果。`accordion`是另一种...
1. 数据绑定:通过JSON数据结构,将菜单项与`easyui-accordion`和`easyui-tree`组件关联起来,动态生成导航结构。 2. 事件处理:监听用户的点击事件,根据选择的菜单项执行相应的操作,如跳转页面、加载内容或展开/...
- JSON 数据格式:EasyUI 组件通常通过 AJAX 从后端获取 JSON 格式的数据,因此,了解如何在 Java 中生成和解析 JSON(例如使用 Jackson 或 Gson 库)是必要的。 - RESTful API 设计:Java 后端需要提供符合 REST ...
最后,前端接收到JSON数据后,Tree组件会自动解析并渲染出来,呈现出一个多选的树形结构,管理员可以根据需要勾选相应的权限。 总的来说,通过EasyUI的Tree组件和后台的递归处理,我们可以方便地实现角色权限的分配...