Tree 数据转换

所有节点都包含以下属性:

  • id:节点id,这个很重要到加载远程服务器数据 which is important to load remote data
  • text: 显示的节点文本
  • state: 节点状态, 'open' 或者 'closed', 默认是 'open'. 当设置为 'closed', 节点所有的子节点将从远程服务器站点加载
  • checked: 指明检查节点是否选中.
  • attributes: 可以添加到节点的自定义属性
  • children: 一个节点数组,定义一些子节点

一些示例:

  1. [{
  2. "id":1,
  3. "text":"Folder1",
  4. "iconCls":"icon-save",
  5. "children":[{
  6. "text":"File1",
  7. "checked":true
  8. },{
  9. "text":"Books",
  10. "state":"open",
  11. "attributes":{
  12. "url":"/demo/book/abc",
  13. "price":100
  14. },
  15. "children":[{
  16. "text":"PhotoShop",
  17. "checked":true
  18. },{
  19. "id": 8,
  20. "text":"Sub Bookds",
  21. "state":"closed"
  22. }]
  23. }]
  24. },{
  25. "text":"Languages",
  26. "state":"closed",
  27. "children":[{
  28. "text":"Java"
  29. },{
  30. "text":"C#"
  31. }]
  32. }]

异步加载树

tree 支持内置的异步加载模式,用户创建一个空的tree,然后定义一个远程服务器站点返回json数据用于填充tree来异步满足异步加载需求.例如:

  1. <ul class="easyui-tree" data-options="url:'get_data.php'"></ul>

tree的加载是通过URL  'get_data.php'站点.子节点的加载依赖于父节点的状态.当展开一个关闭节点,如果节点没有子节点加载,将发送节点id值作为http参数,参数命名为'id'到远程服务器,通过以上URL定义.检索子节点数据
看看这个从服务器返回的数据

  1. [{
  2. "id": 1,
  3. "text": "Node 1",
  4. "state": "closed",
  5. "children": [{
  6. "id": 11,
  7. "text": "Node 11"
  8. },{
  9. "id": 12,
  10. "text": "Node 12"
  11. }]
  12. },{
  13. "id": 2,
  14. "text": "Node 2",
  15. "state": "closed"
  16. }]

节点1和节点2都是closed状态的,可以直接显示它们的子节点,当展开节点2时,发送值2到远程服务器检索子节点
这个教程创建异步的树click me!!!,展示如何写服务器端代码根据需求返回tree数据.

一、方法 

Name Type Description Default
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 对象.
Name Parameters Description
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 取消编辑动作时候触发.

三、方法

Name Parameter Description
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 取消编辑一个节点.
 
 

easyUI tree jQuery的更多相关文章

  1. Jquery EasyUI Tree .net实例

    图片: 针对tree: 数据库: CREATE TABLE [dbo].[SystemModel]( [Id] [,) NOT NULL, [Name] [nvarchar]() NULL, [Fat ...

  2. Jquery easyui Tree的简单使用

    Jquery easyui Tree的简单使用 Jquery easyui 是jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻 ...

  3. Jquery easyui tree的使用

    这个ui用的一切都是json数据.树也是如此! 后台需要返回与格式匹配的json数据才能正确加载树. 页面定义一个ui: <ul id="messageInfoAddTree" ...

  4. Jquery EasyUI Combotree和 EasyUI tree展开所有父节点和获取完整路径

    Jquery EasyUI Combotree展开所有父节点 Jquery EasyUI Combotree获取树完整路径 Jquery EasyUI tree展开所有父节点 Jquery EasyU ...

  5. Jquery easyui tree 一些常见操作

    Tree: easyui tree的异步加载实现很简单,easyui的中文API文档中有实例(http://api.btboys.com/easyui/)——创建异步树形菜单,就是在tree node ...

  6. Jquery EasyUI Tree树形结构的Java实现(实体转换VO)

    前一阵做的OA项目,有一个是组织架构的树,因为是分开做的,我做的是Controller和页面,其他组做的Service和Dao,因为之前一直没有商量页面用什么框架做比较好,导致,Dao层取出来的数据都 ...

  7. 【项目经验】EasyUI Tree

    ITOO5.0开始了,我参加了伟大的基础系统,从整体上来说,基础系统有三个职能: 1.自己的核心职能--选课(公共选修课,专业选修课),课表: 2.为其他系统提供真实数据: 3.维护信息 而近两三天, ...

  8. EasyUI Tree判断节点是否是叶

    方法1:  $('#domaincatalog').tree('isLeaf', node.target); 返回true或false ,true表示是叶节点, false即不是 方法2:官方文档中: ...

  9. EasyUI –tree、combotree学习总结

    EasyUI –tree.combotree学习总结 一.   tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ...

随机推荐

  1. 时间戳与QDateTime相互转换

    最近项目中需要将日期时间输出到Excel中,程序使用Qt开发,使用第三方库QtXlsx进行Excel读写操作.Excel中第一列为时间,时间间隔为1小时,如图所示. 赋值起始时间stDTime,则后续 ...

  2. 全文检索(Lucene&Solr)

    全文检索(Lucene&Solr) 1)什么是全文检索?为什么需要全文检索? 结构化数据(mysql等)方便查询,而非结构化数据(如多篇文章)是难以查询到自己需要的,所以要使用全文检索. 全文 ...

  3. 简单了解一下oracle中的显示游标和存储过程

    游标 游标主要分两类动态和静态游标,静态游标是编译时知道明确的select语句的游标,静态游标分类两种,显示游标和静态游标,这里只说显示游标 显示游标 declare name emp.ename%t ...

  4. javascript遍历方法总结

    forEach 循环 JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.lengt ...

  5. CentOS7下安装FTP

    1.安装vsftpd yum install -y vsftpd 2.设置 使用命令systemctl status vsftpd.service查看ftp状态. 开启ftp systemctl st ...

  6. 关于TP3.2框架读取Sql server中文字段数据以及处理乱码的一些小心得

    最近要做一个项目,需要使用TP3.2框架,之前什么也不会,就硬着头皮上了,结果真的闹了挺多emmmmmm挺低级的错误,就像SQL Server中文字段的读取,一开始我是照着读取英文字段的格式来写的,在 ...

  7. Pythond函数的参数使用操作注意事项

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  8. uniqueidentifier数据类型转换

    cast(id as varchar(36))

  9. The Extinction of Some Languages【一些语言的消失】

    The Extinction of Some Languages Languages have been coming and going for thousands of years, 语言的产生和 ...

  10. C# 不同窗口传递参数

    form1: private void button1_Click(object sender, System.EventArgs e) { Form2 frm = new Form2(); frm. ...