- jQuery EasyUI 教程
- jQuery EasyUI 简介
- jQuery EasyUI 应用 – 创建 CRUD 应用
- jQuery EasyUI 应用 – 创建 CRUD 数据网格
- jQuery EasyUI 应用 – 创建展开行明细编辑表单的 CRUD 应用
- jQuery EasyUI 应用 – 创建 RSS Feed 阅读器
- jQuery EasyUI 拖放 – 基本的拖动和放置
- jQuery EasyUI 拖放 – 创建拖放的购物车
- jQuery EasyUI 拖放 – 创建学校课程表
- jQuery EasyUI 菜单与按钮 – 创建简单的菜单
- jQuery EasyUI 菜单与按钮 – 创建链接按钮
- jQuery EasyUI 菜单与按钮 – 创建菜单按钮
- jQuery EasyUI 菜单与按钮 – 创建分割按钮
- jQuery EasyUI 布局 – 为网页创建边框布局
- jQuery EasyUI 布局 – 在面板中创建复杂布局
- jQuery EasyUI 布局 – 创建折叠面板
- jQuery EasyUI 布局 – 创建标签页(Tabs)
- jQuery EasyUI 布局 – 动态添加标签页(Tabs)
- jQuery EasyUI 布局 – 添加自动播放标签页(Tabs)
- jQuery EasyUI 布局 – 创建 XP 风格左侧面板
- jQuery EasyUI 数据网格 – 转换 HTML 表格为数据网格
- jQuery EasyUI 数据网格 – 取得选中行数据
- jQuery EasyUI 数据网格 – 添加查询功能
- jQuery EasyUI 数据网格 – 添加工具栏
- jQuery EasyUI 数据网格 – 创建复杂工具栏
- jQuery EasyUI 数据网格 – 设置冻结列
- jQuery EasyUI 数据网格 – 动态改变列
- jQuery EasyUI 数据网格 – 格式化列
- jQuery EasyUI 数据网格 – 设置排序
- jQuery EasyUI 数据网格 – 自定义排序
- jQuery EasyUI 数据网格 – 创建列组合
- jQuery EasyUI 数据网格 – 添加复选框
- jQuery EasyUI 数据网格 – 自定义分页
- jQuery EasyUI 数据网格 – 启用行内编辑
- jQuery EasyUI 数据网格 – 扩展编辑器
- jQuery EasyUI 数据网格 – 列运算
- jQuery EasyUI 数据网格 – 合并单元格
- jQuery EasyUI 数据网格 – 创建自定义视图
- jQuery EasyUI 数据网格 – 创建页脚摘要
- jQuery EasyUI 数据网格 – 条件设置行背景颜色
- jQuery EasyUI 数据网格 – 创建属性网格
- jQuery EasyUI 数据网格 – 扩展行显示细节
- jQuery EasyUI 数据网格 – 创建子网格
- jQuery EasyUI 数据网格 – 使用虚拟滚动视图显示海量数据
- jQuery EasyUI 数据网格 – 添加分页组件
- jQuery EasyUI 窗口 – 创建简单窗口
- jQuery EasyUI 窗口 – 自定义窗口工具栏
- jQuery EasyUI 窗口 – 窗口与布局
- jQuery EasyUI 窗口 – 创建对话框
- jQuery EasyUI 窗口 – 自定义带有工具条和按钮的对话框
- jQuery EasyUI 树形菜单 – 使用标记创建树形菜单
- jQuery EasyUI 树形菜单 – 创建异步树形菜单
- jQuery EasyUI 树形菜单 – 树形菜单添加节点
- jQuery EasyUI 树形菜单 – 创建带复选框的树形菜单
- jQuery EasyUI 树形菜单 – 树形菜单拖放控制
- jQuery EasyUI 树形菜单 – 树形菜单加载父/子节点
- jQuery EasyUI 树形菜单 – 创建基础树形网格
- jQuery EasyUI 树形菜单 – 创建复杂树形网格
- jQuery EasyUI 树形菜单 – 树形网格动态加载
- jQuery EasyUI 树形菜单 – 树形网格添加分页
- jQuery EasyUI 树形菜单 – 树形网格惰性加载节点
- jQuery EasyUI 表单 – 创建异步提交表单
- jQuery EasyUI 表单 – 表单验证
- jQuery EasyUI 表单 – 创建树形下拉框(ComboTree)
- jQuery EasyUI 表单 – 格式化下拉框(ComboBox)
- jQuery EasyUI 表单 – 过滤下拉数据网格(ComboGrid)
- jQuery EasyUI 插件
- jQuery EasyUI 扩展
- jQuery EasyUI 教程
- jQuery EasyUI 扩展 – 可编辑的数据网格
- jQuery EasyUI 基础插件 – Parser 解析器
- jQuery EasyUI 数据网格与树插件 – Treegrid 树形网格
- jQuery EasyUI 基础插件 – Easyloader 加载器
- jQuery EasyUI 基础插件 – Draggable 可拖拽
- jQuery EasyUI 基础插件 – Droppable 可释放
- jQuery EasyUI 基础插件 – Resizable 可调整尺寸
- jQuery EasyUI 基础插件 – Pagination 分页
- jQuery EasyUI 基础插件 – Searchbox 搜索框
- jQuery EasyUI 基础插件 – Progressbar 进度条
- jQuery EasyUI 基础插件 – Tooltip 提示框
- jQuery EasyUI 布局插件 – Panel 面板
- jQuery EasyUI 布局插件 – Tabs 标签页/选项卡
- jQuery EasyUI 布局插件 – Accordion 折叠面板
- jQuery EasyUI 布局插件 – Layout 布局
- jQuery EasyUI 菜单与按钮插件 – Menu 菜单
- jQuery EasyUI 菜单与按钮插件 – Linkbutton 链接按钮
- jQuery EasyUI 菜单与按钮插件 – Menubutton 菜单按钮
- jQuery EasyUI 菜单与按钮插件 – Splitbutton 分割按钮
- jQuery EasyUI 表单插件 – Form 表单
- jQuery EasyUI 表单插件 – Validatebox 验证框
- jQuery EasyUI 表单插件 – Combobox 组合框
- jQuery EasyUI 表单插件 – Combotree 组合树
- jQuery EasyUI 表单插件 – Combogrid 组合网格
- jQuery EasyUI 表单插件 – Numberbox 数字框
- jQuery EasyUI 表单插件 – Datebox 日期框
- jQuery EasyUI 表单插件 – Datetimebox 日期时间框
- jQuery EasyUI 表单插件 – Calendar 日历
- jQuery EasyUI 表单插件 – Spinner 微调器
- jQuery EasyUI 表单插件 – Numberspinner 数值微调器
- jQuery EasyUI 表单插件 – Timespinner 时间微调器
- jQuery EasyUI 表单插件 – Slider 滑块
- jQuery EasyUI 窗口插件 – Window 窗口
- jQuery EasyUI 窗口插件 – Dialog 对话框
- jQuery EasyUI 窗口插件 – Messager 消息框
- jQuery EasyUI 数据网格与树插件 – Datagrid 数据网格
- jQuery EasyUI 数据网格与树插件 – Propertygrid 属性网格
- jQuery EasyUI 数据网格与树插件 – Tree 树
- jQuery EasyUI 扩展 – Portal
- jQuery EasyUI 扩展 – 数据网格视图
- jQuery EasyUI 扩展 – 可编辑的树
- jQuery EasyUI 扩展 – 数据网格行过滤
- jQuery EasyUI 扩展 – 数据网格行拖放
- jQuery EasyUI 扩展 – 树形网格行拖放
- jQuery EasyUI 扩展 – 主题
- jQuery EasyUI 扩展 – DWR 加载器
- jQuery EasyUI 扩展 – RTL 支持
- jQuery EasyUI 扩展 – Ribbon
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
jQuery EasyUI 数据网格与树插件 – Tree 树
pre { white-space: pre-wrap; } jQuery EasyUI 插件
jQuery EasyUI 插件
通过 $.fn.tree.defaults 重写默认的 defaults。
树(tree)在网页中以树形结构显示分层数据。它向用户提供展开、折叠、拖拽、编辑和异步加载功能。
依赖
- draggable
- droppable
用法
树(tree)定义在 <ul> 元素中。该标记可定义叶节点和子节点。节点将是 ul 列表内的 <li> 元素。下面演示了将被用于制作嵌套在 ul 元素内的树节点的元素。
<ul id="tt"> <li> <span>Folder</span> <ul> <li> <span>Sub Folder 1</span> <ul> <li><span><a href="#">File 11</a></span></li> <li><span>File 12</span></li> <li><span>File 13</span></li> </ul> </li> <li><span>File 2</span></li> <li><span>File 3</span></li> </ul> </li> <li><span>File21</span></li> </ul>
树(Tree)也可以在一个空的 <ul> 元素中定义,可使用 javascript 加载数据。
<ul id="tt"></ul>
$('#tt').tree({ url:'tree_data.json' });
使用 loadFilter 来处理来自 ASP.NET web 服务的 json 数据。
$('#tt').tree({ url: ..., loadFilter: function(data){ if (data.d){ return data.d; } else { return data; } } });
树的数据格式(Tree Data Format)
每个节点可以包括下列属性:
- id:节点的 id,它对于加载远程数据很重要。
- 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#" }] }]
异步树
树支持内置的异步加载模式,因此用户可以创建一个空的树,然后指定一个动态返回 JSON 数据的服务器端,用于根据需求异步填充树。下面是一个实例:
<ul data-options="url:'get_data.php'"></ul>
树是通过 URL 'get_data.php' 加载的。子节点依赖于父节点状态被加载。当展开一个关闭的节点时,如果该节点没有子节点加载,它将通过上面定义的 URL 向服务器发送节点的 id 值作为名为 'id' 的 http 请求参数,以便检索子节点。
请看从服务器返回的数据:
[{ "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 是关闭的,当展开节点 1 时,将直接展示它的子节点。当展开节点 2 时,将向服务器发送 value(2) 以便检索子节点。
本教程中的 创建异步树 演示了如何编写服务器代码来根据需求返回树的数据。
属性
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
url | string | 获取远程数据的 URL 。 | null |
method | string | 检索数据的 http 方法(method)。 | post |
animate | boolean | 定义当节点展开折叠时是否显示动画效果。 | false |
checkbox | boolean | 定义是否在每个节点前边显示复选框。 | false |
cascadeCheck | boolean | 定义是否级联检查。 | true |
onlyLeafCheck | boolean | 定义是否只在叶节点前显示复选框。 | false |
lines | boolean | 定义是否显示树线条。 | false |
dnd | boolean | 定义是否启用拖放。 | false |
data | array | 要加载的节点数据。$('#tt').tree({ data: [{ text: 'Item1', state: 'closed', children: [{ text: 'Item11' },{ text: 'Item12' }] },{ text: 'Item2' }] }); | null |
formatter | function(node) | 定义如何呈现节点文本。 代码实例: $('#tt').tree({ formatter:function(node){ return node.text; } }); | |
loader | function(param,success,error) | 定义如何从远程服务器加载数据。返回 false 则取消该动作。该函数有下列参数: param:要传递到远程服务器的参数对象。 success(data):当检索数据成功时调用的回调函数。 error():当检索数据失败时调用的回调函数。 | json loader |
loadFilter | function(data,parent) | 返回要显示的过滤数据。返回数据时以标准树格式返回的。该函数有下列参数: data:要加载的原始数据。 parent:DOM 对象,表示父节点。 |
事件
很多事件的回调函数需要 'node' 参数,它包括下列属性:
- id:绑定到节点的标识值。
- text:要显示的文本。
- iconCls:用来显示图标的 css class。
- 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 参数与 jQuery.ajax 的 'error' 函数一样。 |
onBeforeExpand | node | 节点展开前触发,返回 false 则取消展开动作。 |
onExpand | node | 当节点展开时触发。 |
onBeforeCollapse | node | 节点折叠前触发,返回 false 则取消折叠动作。 |
onCollapse | node | 当节点折叠时触发。 |
onBeforeCheck | node, checked | 当用户点击复选框前触发,返回 false 则取消该选中动作。该事件自版本 1.3.1 起可用。 |
onCheck | node, checked | 当用户点击复选框时触发。 |
onBeforeSelect | node | 节点被选中前触发,返回 false 则取消选择动作。 |
onSelect | node | 当节点被选中时触发。 |
onContextMenu | e, node | 当右键点击节点时触发。代码实例:// right click node and then display the context menu $('#tt').tree({ onContextMenu: function(e, node){ e.preventDefault(); // select the node $('#tt').tree('select', node.target); // display context menu $('#mm').menu('show', { left: e.pageX, top: e.pageY }); } }); // the context menu is defined as below: <div id="mm"> <div onclick="append()" data-options="iconCls:'icon-add'">Append</div> <div onclick="remove()" data-options="iconCls:'icon-remove'">Remove</div> </div> |
onBeforeDrag | node | 当节点的拖拽开始时触发,返回 false 则禁止拖拽。该事件自版本 1.3.2 起可用。 |
onStartDrag | node | 当开始拖拽节点时触发。该事件自版本 1.3.2 起可用。 |
onStopDrag | node | 当停止拖拽节点时触发。该事件自版本 1.3.2 起可用。 |
onDragEnter | target, source | 当节点被拖拽进入某个允许放置的目标节点时触发,返回 false 则禁止放置。 target:被放置的目标节点元素。 source:被拖拽的源节点。 该事件自版本 1.3.2 起可用。 |
onDragOver | target, source | 当节点被拖拽到允许放置的目标节点上时触发,返回 false 则禁止放置。 target:被放置的目标节点元素。 source:被拖拽的源节点。 该事件自版本 1.3.2 起可用。 |
onDragLeave | target, source | 当节点被拖拽离开允许放置的目标节点时触发。 target:被放置的目标节点元素。 source:被拖拽的源节点。 该事件自版本 1.3.2 起可用。 |
onBeforeDrop | target,source,point | 节点被放置之前触发,返回 false 则禁止放置。 target:DOM 对象,放置的目标节点。 source:源节点。 point:表示放置操作,可能的值是:'append'、'top' 或 'bottom'。 该事件自版本 1.3.2 起可用。 |
onDrop | target,source,point | 当节点被放置时触发。 target:DOM 对象,放置的目标节点。 source:源节点。 point:表示放置操作,可能的值是:'append'、'top' 或 'bottom'。 |
onBeforeEdit | node | 编辑节点前触发。 |
onAfterEdit | node | 编辑节点后触发。 |
onCancelEdit | node | 当取消编辑动作时触发。 |
方法
名称 | 参数 | 描述 |
---|---|---|
options | none | 返回树的选项(options)。 |
loadData | data | 加载树的数据。 |
getNode | target | 获取指定的节点对象。 |
getData | target | 获取指定的节点数据,包括它的子节点。 |
reload | target | 重新加载树的数据。 |
getRoot | none | 获取根节点,返回节点对象。 |
getRoots | none | 获取根节点,返回节点数组。 |
getParent | target | 获取父节点,target 参数表示节点的 DOM 对象。 |
getChildren | target | 获取子节点, target 参数表示节点的 DOM 对象。 |
getChecked | state | 获取选中的节点。状态可用值有:'checked'、'unchecked'、'indeterminate'。如果状态未分配,则返回 'checked' 节点。 代码实例: var nodes = $('#tt').tree('getChecked'); // get checked nodes var nodes = $('#tt').tree('getChecked', 'unchecked'); // get unchecked nodes var nodes = $('#tt').tree('getChecked', 'indeterminate'); // get indeterminate nodes var nodes = $('#tt').tree('getChecked', ['checked','indeterminate']); // get checked and indeterminate nodes |
getSelected | none | 获取选中的节点并返回它,如果没有选中节点,则返回 null。 |
isLeaf | target | 把指定的节点定义成叶节点,target 参数表示节点的 DOM 对象。 |
find | id | 找到指定的节点并返回该节点对象。代码实例:// find a node and then select it 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 对象。当节点关闭且没有子节点时,节点的 id 值(名为 'id' 参数)将被发送至服务器以请求子节点数据。 |
collapseAll | target | 折叠所有的节点。 |
expandAll | target | 展开所有的节点。 |
expandTo | target | 从根部展开一个指定的节点。 |
scrollTo | target | 滚动到指定节点。该方法自版本 1.3.4 起可用。 |
append | param | 追加一些子节点到一个父节点,param 参数有两个属性: parent:DOM 对象,要追加到的父节点,如果没有分配,则追加为根节点。 data:数组,节点的数据。 代码实例: // append some nodes to the selected node 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 | 切换节点的展开/折叠状态,target 参数表示节点的 DOM 对象。 |
insert | param | 在指定节点的前边或后边插入一个节点,param 参数包括下列属性: before:DOM 对象,前边插入的节点。 after:DOM 对象,后边插入的节点。 data:对象,节点数据。 下面的代码演示了如何在选中节点之前插入一个新的节点: 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,等等。 代码实例: // update the selected node text var node = $('#tt').tree('getSelected'); if (node){ $('#tt').tree('update', { target: node.target, text: 'new text' }); } |
enableDnd | none | 启用拖放功能。 |
disableDnd | none | 禁用拖放功能。 |
beginEdit | target | 开始编辑节点。 |
endEdit | target | 结束编辑节点。 |
cancelEdit | target | 取消编辑节点。 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论