您的位置:首页 > 产品设计 > UI/UE

EasyUI系统之Tree

2015-10-30 13:22 676 查看
1.静态ul+li方式实现

1 <div data-options="region:'center',title:'FastQ'"
2         style="overflow: hidden;">
3         <ul id="tt" class="easyui-tree">
4             <li><span>中国</span>
5                 <ul>
6                     <li><span>北京</span>
7                         <ul>
8                             <li><span><a href="#">海淀</a></span></li>
9                             <li><span>朝阳</span></li>
10                             <li><span>昌平</span></li>
11                         </ul></li>
12                     <li><span>山西</span>
13                         <ul>
14                             <li><span><a href="#">海淀</a></span></li>
15                             <li><span>朝阳</span></li>
16                             <li><span>昌平</span></li>
17                         </ul></li>
18                     <li><span>浙江</span>
19                         <ul>
20                             <li><span>杭州</span></li>
21                         </ul></li>
22                     <li><span>广西</span>
23                         <ul>
24                             <li><span><a href="#">南宁</a></span></li>
25                             <li><span>桂林</span></li>
26                             <li><span>北海</span></li>
27                         </ul></li>
28                 </ul></li>
29             <li><span>美国</span></li>
30         </ul>
31     </div>


效果图



2.定义空的ul,通过javascript加载实现

jsp代码

1 <ul id="tt"></ul>
2     <!-- 定义空的ul,通过javascript加载实现 -->
3     <script type="text/javascript">
4         $('#tt').tree({
5     url:'tree_data.json'
6     });
7     </script>


json代码

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     }]


效果图



3.树数据格式

每个节点可以包含以下属性:

ID:节点ID,这是加载远程数据的重要

正文:节点的文本显示

状态:节点状态,“打开”或“关闭”,默认是“开放的”。当设置为“关闭”,节点具有子节点,并将它们加载从远程站点

检查:检查指示节点选择。

属性:自定义属性可以被添加到一个节点

孩子:数组定义一些孩子节点的节点

4.异步树

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


5.特性

名称
类型
说明
默认值
url

string

获取远程数据的 URL 。

null

method

string

获取数据的 http method 。

post

animate

boolean

定义当节点展开折叠时是否显示动画效果。

false

checkbox

boolean

定义是否在每个节点前边显示 checkbox 。

false

cascadeCheck

boolean

定义是否级联检查。

true

onlyLeafCheck

boolean

定义是否只在叶节点前显示 checkbox 。

false

dnd

boolean

定义是否启用拖放。

false

data

array

加载的节点数据。

null

lines

boolean

显示线条

false

queryParams

object

额外的参数将发送到服务器时,要求远程数据。从1.4版本可用。

{}

loader

function(param,success,error)

如何设置从远程服务器加载数据。这个动作可以中止,返回false。这个函数需要以下参数:

param: the parameter object to pass to remote server.
参数:参数传递到远程对象到服务器。
success(data): the callback function that will be called when retrieve data successfully.
成功的回调函数(日期):为检索数据时,是会成功的。
error(): the callback function that will be called when failed to retrieve data.
错误:函数(回调),将被称为当无法检索数据。
json loader

loadFilter

function(data,parent)

过滤后的数据返回到显示。返回的数据是在标准的树格式。此功能需要下列参数:

data: the original data to be loaded.
数据:原始数据加载。
parent: DOM object, indicate the parent node.
父节点:DOM对象,显示父节点。

6.事件

很多事件的回调函数需要 'node' 函数,它包含下列特性:

id:绑定到节点的标识值。

text:显示的文字。

checked:是否节点被选中。

attributes:绑定到节点的自定义属性。

target:目标的 DOM 对象。

名称
参数
说明
onClick

node

当用户点击一个节点时触发, node 参数包含下列特性: id:节点的 id text:节点的文字 checked:节点是否被选中 attributes:节点自定义属性 target:被点击目标的 DOM 对象

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

当节点折叠时触发。

onCheck

node, checked

当用户点击 checkbox 时触发。

onBeforeSelect

node

节点被选中前触发,返回 false 就取消选择动作。

onSelect

node

当节点被选中时触发。

onContextMenu

e, node

当右键点击节点时触发。

onDrop

target, source, point

当节点被拖拽施放时触发。 target:DOM 对象,拖放的目标节点。 source:源节点。 point:表示拖放操作,可能是值是: 'append'、'top' 或 'bottom'。

onBeforeEdit

node

编辑节点前触发。

onAfterEdit

node

编辑节点后触发。

onCancelEdit

node

当取消编辑动作时触发。

7.方法

名称
参数
说明
options

none

返回树的 options。

loadData

data

加载树的数据。

getNode

target

获取指定的节点对象。

getData

target

获取指定的节点数据,包括它的子节点。

reload

target

重新加载树的数据。

getRoot

none

获取根节点,返回节点对象。

getRoots

none

获取根节点们,返回节点数组。

getParent

target

获取父节点, target 参数指节点的 DOM 对象。

getChildren

target

获取子节点, target 参数指节点的 DOM 对象。

getChecked

none

获取所有选中的节点。

getSelected

none

获取选中的节点并返回它,如果没有选中节点,就返回 null。

isLeaf

target

把指定的节点定义成叶节点, target 参数表示节点的 DOM 对象。

find

id

找到指定的节点并返回此节点对象。

select

target

选中一个节点, target 参数表示节点的 DOM 对象。

check

target

把指定节点设置为勾选。

uncheck

target

把指定节点设置为未勾选。

collapse

target

折叠一个节点, target 参数表示节点的 DOM 对象。

expand

target

展开一个节点, target 参数表示节点的 DOM 对象。

collapseAll

target

折叠所有的节点们。

expandAll

target

展开所有的节点们。

expandTo

target

从指定节点的根部展开。

append

param

追加一些子节点们到一个父节点, param 参数有两个特性: parent:DOM 对象,追加到的父节点,如果没有分配,则追加为根节点。 data:数组,节点们的数据。

toggle

target

切换节点的展开/折叠状态, target 参数表示节点的 DOM 对象。

insert

param

在指定节点的前边或后边插入一个节点, param 参数包含下列特性: before:DOM 对象,前边插入的节点。 after:DOM 对象,后边插入的节点。 data:对象,节点数据。

remove

target

移除一个节点和它的子节点们, target 参数表示节点的 DOM 对象。

pop

target

弹出一个节点和它的子节点们,此方法和 remove 一样,但是返回了移除的节点数据。

update

param

跟心指定的节点, param 参数有下列特性: target(DOM 对象,被更新的节点)、id、text、iconCls、checked、等等。

enableDnd

none

启用拖放功能。

disableDnd

none

禁用拖放功能。

beginEdit

nodeEl

开始编辑节点。

endEdit

nodeEl

结束编辑节点。

cancelEdit

nodeEl

取消编辑节点。

内容取自EasyUI官网API,因工作中需要,翻译过来,结合自己的小示例,供大家参考,大家可以分享一起讨论共进步~

示例

jsp

1 <%@ page language="java" pageEncoding="UTF-8"%>
2     <div class="easyui-accordion" data-options="fit:true,border:false">
3         <div title="功能管理" data-options="iconCls:'icon-save'">
4             <ul id="layout_sysfuncinfo_tree" class="easyui-tree" data-options="
5                     url : '${pageContext.request.contextPath}/sys_funcinfoAction!getAllTreeNode.action',
6                     parentField : 'pid',
7                     lines : true,
8                     animate : true,//是否显示动画
9                     checkbox : true
10                     "></ul>
11         </div>
12         <div title="Title2" data-options="iconCls:'icon-reload'"></div>
13     </div>


action

1 public void getAllTreeNode() { 2 super.writeJson(sys_funcinfoService.getAllTreeNode()); 3 }

impl

@Override
public List<Sys_funcinfo> getAllTreeNode() {
//用于展示的集合
List<Sys_funcinfo> nl = new ArrayList<Sys_funcinfo>();
//hql
String hql = "from TSys_funcinfo t";
//查询到的集合
List<TSys_funcinfo> l = Sys_funcinfoDao.find(hql);
if (l != null && l.size() > 0) {
//遍历查询到的集合
for (TSys_funcinfo t : l) {
//用于展示的对象
Sys_funcinfo m = new Sys_funcinfo();
//属性移动
BeanUtils.copyProperties(t, m);
//设置树ID
m.setId(t.getFunccode());
//设计树显示文本
m.setText(t.getFuncname());
// 获得当前节点的父节点对象
TSys_funcinfo tm = t.getSysFuncinfo();
//如果存在父节点
if (tm != null) {
//赋值给父id
m.setPid(tm.getFunccode());
}
nl.add(m);
}
}
return nl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: