转:http://www.cnblogs.com/easypass/archive/2012/12/27/2835219.html
Tree 数据转换
所有节点都包含以下属性:
- id:节点id,这个很重要到加载远程服务器数据 which is important to load remote data
- text: 显示的节点文本
- state: 节点状态, 'open' 或者 'closed', 默认是 'open'. 当设置为 'closed', 节点所有的子节点将从远程服务器站点加载
- checked: 指明检查节点是否选中.
- attributes: 可以添加到节点的自定义属性
- children: 一个节点数组,定义一些子节点
一些示例:
- [{
- "id":1,
- "text":"Folder1",
- "iconCls":"icon-save",
- "children":[{
- "text":"File1",
- "checked":true
- },{
- "text":"Books",
- "state":"open",
- "attributes":{
- "url":"/demo/book/abc",
- "price":100
- },
- "children":[{
- "text":"PhotoShop",
- "checked":true
- },{
- "id": 8,
- "text":"Sub Bookds",
- "state":"closed"
- }]
- }]
- },{
- "text":"Languages",
- "state":"closed",
- "children":[{
- "text":"Java"
- },{
- "text":"C#"
- }]
- }]
异步加载树
tree 支持内置的异步加载模式,用户创建一个空的tree,然后定义一个远程服务器站点返回json数据用于填充tree来异步满足异步加载需求.例如:
- <ul class="easyui-tree" data-options="url:'get_data.php'"></ul>
tree的加载是通过URL 'get_data.php'站点.子节点的加载依赖于父节点的状态.当展开一个关闭节点,如果节点没有子节点加载,将发送节点id值作为http参数,参数命名为'id'到远程服务器,通过以上URL定义.检索子节点数据
看看这个从服务器返回的数据
- [{
- "id": 1,
- "text": "Node 1",
- "state": "closed",
- "children": [{
- "id": 11,
- "text": "Node 11"
- },{
- "id": 12,
- "text": "Node 12"
- }]
- },{
- "id": 2,
- "text": "Node 2",
- "state": "closed"
- }]
节点1和节点2都是closed状态的,可以直接显示它们的子节点,当展开节点2时,发送值2到远程服务器检索子节点
这个教程创建异步的树click me!!!,展示如何写服务器端代码根据需求返回tree数据.
一、方法
url | string | 一个从远程服务器检索数据的URL. | null |
method | string | 检索数据的http方法类型. | post |
animate | boolean | 定义当展开/折叠节点的时候是否显示效果. | false |
checkbox | boolean | 定义是否显示checkbox在所有节点之前. | false |
cascadeCheck | boolean | 定义是否级联选择. | true |
onlyLeafCheck | boolean | 定义是否仅仅只是在叶子节点显示checkbox. | false |
lines | boolean | 定义是否显示树线. | false |
dnd | boolean | 定义是否启用drag and drop. | false |
data | array | 这个节点数据将被加载.
$('#tt').tree({ data: [{ text: 'Item1', state: 'closed', children: [{ text: 'Item11' },{ text: 'Item12' }] },{ text: 'Item2' }] }); |
null |
loader | function(param,success,error) | 定义如何从远程服务器加载数据.返回false将终止这个动作.这个函数提供以下参数: param: 这个参数对象将传送给远程服务器. success(data): 当检索数据成功之后的回调函数. error(): 当检索数据出现异常的时候调用的回调函数. |
json loader |
loadFilter | function(data,parent) | 返回显示过滤后的数据. 返回的数据是标准的tree格式.这个函数提供以下参数: data:装载的是原始数据. parent: DOM 对象, 指定父节点. |
二、事件
许多回调函数提供'node'参数, 都包含以下属性:
- id: 绑定到节点的标识值.
- text:显示文本.
- iconCls: 显示icon的css样式.
- checked: 节点是否选中.
- state: 节点状态, 'open' 或者 'closed'.
- attributes: 绑定到节点的自定义属性.
- target: 目标 DOM 对象.
onClick | node | 当用户点击节点的时候触发. 示例代码:
$('#tt').tree({ onClick: function(node){ alert(node.text); // alert node text property when clicked } }); |
onDblClick | node | 当用户双击一个节点的时候触发. |
onBeforeLoad | node, param | 当一个请求加载数据在前触发, 返回false取消加载动作. |
onLoadSuccess | node, data | 当数据加载成功之后触发. |
onLoadError | arguments | 当数据加载失败触发,arguments参数和ajax jQuery 的'error'一样 . |
onBeforeExpand | node | 节点展开之前触发,返回false取消展开动作. |
onExpand | node | 当节点展开之后触发. |
onBeforeCollapse | node | 节点折叠之前触发,返回false将取消折叠动作. |
onCollapse | node | 当节点折叠之后触发. |
onCheck | node, checked | 当用户点击checkbox的时候触发. |
onBeforeSelect | node | 节点被选中之前触发,返回false取消选择动作. |
onSelect | node | 当节点选中之后触发. |
onContextMenu | e, node | 当在节点上右键点击的时候触发,代码示例:
// 右键点击节点然后显示上下文菜单 $('#tt').tree({ onContextMenu: function(e, node){ e.preventDefault(); // 选择节点 $('#tt').tree('select', node.target); // 显示上下文菜单 $('#mm').menu('show', { left: e.pageX, top: e.pageY }); } }); //上下文菜单定义如下: <div id="mm" class="easyui-menu" style="width:120px;"> <div onclick="append()" data-options="iconCls:'icon-add'">Append</div> <div onclick="remove()" data-options="iconCls:'icon-remove'">Remove</div> </div> |
onDrop | target, source, point | 当节点被放置的时候触发. target: DOM 对象,这个节点是被放置的目标. source: 源节点. point:指明drop操作,可用值有: 'append','top' or 'bottom'. |
onBeforeEdit | node | 在编辑节点之前触发. |
onAfterEdit | node | 编辑节点之后触发. |
onCancelEdit | node | 取消编辑动作时候触发. |
三、方法
options | none | 返回tree 的options. |
loadData | data | 加载tree数据. |
getNode | target | 得到特定的节点对象. |
getData | target | 得到特定节点数据, 包含其子节点. |
reload | target | 重新加载tree数据. |
getRoot | none | 得到根节点, 返回节点对象 |
getRoots | none | 得到根节点, 返回节点数组. |
getParent | target | 得到父节点,target参数指明节点DOM对象. |
getChildren | target | 得到子节点,target 参数指明节点DOM对象. |
getChecked | none | 得到所有选中节点. |
getSelected | none | 得到选择节点和返回它,如果没有选择节点将返回null. |
isLeaf | target | 解决特定的节点是否是叶子节点, target 参数指明节点DOM对象. |
find | id | 查找特定的节点和返回节点对象,代码示例:
// 查找一个节点然后返回它 var node = $('#tt').tree('find', 12); $('#tt').tree('select', node.target); |
select | target | 选择一个节点,target 参数指明节点DOM对象. |
check | target | 设置特定的节点选中. |
uncheck | target | 设置特定的节点取消选中. |
collapse | target | 折叠一个节点, target 参数指明节点DOM对象. |
expand | target | 展开一个节点, target 参数指明节点DOM对象,当节点的状态是closed的时候 和没有子节点,节点id值(参数命名为'id')将发送给服务器请求子节点数据. |
collapseAll | target | 折叠所有节点. |
expandAll | target | 展开所有节点. |
expandTo | target | 展开从根节点到指定的节点 . |
append | param | 附加一些子节点到父节点中. param参数有两个属性: parent: DOM 对象,被添加到的父节点,如果没有分配,附加到根节点. data: array, the nodes data. Code example: // 添加一些节点到选择的节点 var selected = $('#tt').tree('getSelected'); $('#tt').tree('append', { parent: selected.target, data: [{ id: 23, text: 'node23' },{ text: 'node24', state: 'closed', children: [{ text: 'node241' },{ text: 'node242' }] }] }); |
toggle | target | 切换expanded/collapsed 节点的状态,target 参数指明节点DOM对象. |
insert | param | 插入一个节点到特定节点的之前或之后.'param'参数包含以下属性: before: DOM 对象,节点插入到之前. after: DOM 对象, 节点插入到之后. data: object, 节点数据. 以下代码展示,如何插入新节点到选择节点之前: var node = $('#tt').tree('getSelected'); if (node){ $('#tt').tree('insert', { before: node.target, data: { id: 21, text: 'node text' } }); } |
remove | target | 移除一个节点和其子节点,target 参数指明节点DOM对象. |
pop | target | 移除一个节点和其子节点,这个方法和remove类似,但是它返回移除的节点数据. |
update | param | 更新特定的节点. 'param'参数包含以下属性: target(DOM 对象, 更新的节点),id,text,iconCls,checked,等等. 示例代码: // 更新选择的节点文本 var node = $('#tt').tree('getSelected'); if (node){ $('#tt').tree('update', { target: node.target, text: 'new text' }); } |
enableDnd | none | 启用 drag 和 drop 功能. |
disableDnd | none | 禁用 drag 和drop 功能. |
beginEdit | target | 开始编辑一个节点. |
endEdit | target | 结束编辑一个节点. |
cancelEdit | target | 取消编辑一个节点. |
相关推荐
jQuery EasyUI Tree的基础使用主要涉及以下几个方面: 1. **引入依赖**: 在HTML页面中,我们需要引入jQuery、jQuery EasyUI的核心CSS和JS文件,以及Tree组件的特定CSS和JS文件。确保这些资源已正确加载,是使用...
本篇文章将深入探讨如何实现jQuery EasyUI Tree的动态加载,并根据提供的标题和描述,分享一些可能的实现方法。 动态加载是一种优化技术,可以提高用户体验,避免一次性加载大量数据导致页面响应变慢。对于Tree组件...
使用方法如下: * $("#treeId").tree("search", searchText); * 其中,treeId为easyui tree的根UL元素的ID,searchText为检索的文本。 * 如果searchText为空或"",将恢复展示所有节点为正常状态 */ (function($)...
具体来说,我们将修改EasyUI Tree的`loadFilter`方法,使其能够自动处理扁平化的数据结构,并将其转换成适合EasyUI Tree使用的格式。 #### 五、实现原理 下面是对EasyUI Tree进行扁平化扩展的核心逻辑: 1. **定义...
jQuery EasyUI 的 API 文档通常会详细说明每个组件的使用方法、配置选项、事件以及方法。例如,Datagrid 的 API 可能会涵盖如何加载数据、如何处理行点击事件、如何进行数据排序等。开发者可以通过查阅API文档了解...
**jQuery EasyUI 知识点详解** jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列的 UI 组件,使得开发者能够快速...在实际项目中,熟练掌握 jQuery EasyUI 的使用技巧和 API,对于提升工作效率至关重要。
2. **组件详解**:jQuery EasyUI 提供了许多组件,如 `datagrid`(数据网格)、`dialog`(对话框)、`menu`(菜单)、`tabs`(选项卡)、`tree`(树形结构)和`form`(表单)。每个组件都有详细的配置选项、方法和...
### jQuery EasyUI tree 使用拖拽功能知识点 #### jQuery EasyUI介绍 jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列用户界面组件,例如对话框、表格、菜单、树形控件等,以帮助开发者更快地构建Web界面...
- 使用 jQuery EasyUI 的方法和属性初始化组件,例如 `$("#element").datagrid(options);`。 - 配置组件选项,如数据源、列定义、行为等。 4. **jQuery EasyUI 示例(Demo):** 提供的全套 demo 包含了各种组件...
9. **文档和示例**:jQuery EasyUI 提供详尽的API文档和示例代码,有助于开发者快速学习和掌握使用方法。 10. **社区和更新**:jQuery EasyUI 有一个活跃的开发者社区,不断有新的插件和改进被贡献出来,而1.3.6...
最新版本的jQuery EasyUI 1.3.6版全中文API汉化文档火热出炉,由于很多人和我要chm格式的,所以本次API我提供了2种版本的API,一个还是以前的EXE格式,另外一个就是人气颇高的chm格式。本次还将EasyUI 1.3.6版直接...
jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,用于快速构建用户界面。1.4.2 版本是这个框架的一个稳定版本,包含了许多改进和修复,以提升开发者的体验和应用程序的性能。这个压缩包...
下面将详细介绍 jQuery EasyUI 的核心概念、常用组件以及 API 使用方法。 jQuery EasyUI 基于 jQuery,这意味着它利用了 jQuery 的高效选择器和事件处理机制。EasyUI 提供的组件包括窗口(Window)、表格(Grid)、...
它详尽地介绍了各个组件的使用方法、属性、事件和方法,帮助开发者快速上手并深入理解。此外,文档中还包含了示例代码,通过实际操作加深理解。 四、演示Demo的价值 1. 学习参考:Demo提供了直观的实例,展示了...
在 `JqueryEasyUI1.4参考手册.chm` 中,你将找到关于 jQuery EasyUI 1.4 版本的详尽指南。`.chm` 文件是一种微软编写的帮助文档格式,它包含索引、搜索功能和一系列主题,方便用户查找和学习。 **组件介绍** ...
使用方法 在 HTML 页面中引入 jQuery 和 jQuery EasyUI 的 JS、CSS 文件后,通过简单的 JavaScript 代码就可以创建和配置组件。例如,创建一个数据网格只需一行代码: ```html 数据网格" class="easyui-datagrid...
对于开发者而言,API文档是学习和理解框架功能的关键工具,它可以提供详尽的函数介绍、参数说明以及使用示例,帮助开发者高效地掌握jQuery EasyUI的使用方法。 jQuery EasyUI 的核心知识点包括: 1. **组件库**:...
jQueryEasyUI 是一款基于 jQuery 的前端框架,它为开发者提供了一系列轻量级、易于使用的组件,用于快速构建用户界面。这个1.1版本包含了完整的源代码,允许开发者深入理解其工作原理,并进行定制和优化。 1. **...
总的来说,jQuery EasyUI官方API中文版是开发者不可或缺的工具,它详细阐述了各个组件的使用方法,帮助开发者快速上手并高效地开发Web应用程序。通过深入学习和实践,我们可以利用EasyUI创建出具有专业级用户体验的...