`

转:easy ui tree

 
阅读更多
使用示例
Tree 可以在<ul>元素定义,标记可以定义叶子节点,子节点,节点可以是li元素和内置的ul的列表,下面展示的元素使树节点内嵌ul元素:
<ul id="tt" class="easyui-tree">  
    <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 services输出的json数据.
$('#tt').tree({  
    url: ...,  
    loadFilter: function(data){  
        if (data.d){  
            return data.d;  
        } else {  
            return data;  
        }  
    }  
});  


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数据.

属性
NameTypeDescriptionDefault
urlstring一个从远程服务器检索数据的URL.null
methodstring检索数据的http方法类型.post
animateboolean定义当展开/折叠节点的时候是否显示效果.false
checkboxboolean定义是否显示checkbox在所有节点之前.false
cascadeCheckboolean定义是否级联选择.true
onlyLeafCheckboolean定义是否仅仅只是在叶子节点显示checkbox.false
linesboolean定义是否显示树线.false
dndboolean定义是否启用drag and drop.false
dataarray这个节点数据将被加载. $('#tt').tree({ data: [{ text: 'Item1', state: 'closed', children: [{ text: 'Item11' },{ text: 'Item12' }] },{ text: 'Item2' }]});null
loaderfunction(param,success,error)定义如何从远程服务器加载数据.返回false将终止这个动作.这个函数提供以下参数param: 这个参数对象将传送给远程服务器success(data): 当检索数据成功之后的回调函数error(): 当检索数据出现异常的时候调用的回调函数.json loader
loadFilterfunction(data,parent)返回显示过滤后的数据. 返回的数据是标准的tree格式.这个函数提供以下参数data:装载的是原始数据.parent: DOM 对象, 指定父节点.


事件
许多回调函数提供'node'参数, 都包含以下属性:
  • id: 绑定到节点的标识值.
  • text:显示文本.
  • iconCls: 显示icon的css样式.
  • checked: 节点是否选中.
  • state: 节点状态, 'open' 或者 'closed'.
  • attributes: 绑定到节点的自定义属性.
  • target: 目标 DOM 对象.
NameParametersDescription
onClicknode当用户点击节点的时候触发. 示例代码: $('#tt').tree({ onClick: function(node){ alert(node.text);  // alert node text property when clicked }});
onDblClicknode当用户双击一个节点的时候触发.
onBeforeLoadnode, param当一个请求加载数据在前触发, 返回false取消加载动作.
onLoadSuccessnode, data当数据加载成功之后触发.
onLoadErrorarguments当数据加载失败触发,arguments参数和ajax jQuery 的'error'一样 .
onBeforeExpandnode节点展开之前触发,返回false取消展开动作.
onExpandnode当节点展开之后触发.
onBeforeCollapsenode节点折叠之前触发,返回false将取消折叠动作.
onCollapsenode当节点折叠之后触发.
onChecknode, checked当用户点击checkbox的时候触发.
onBeforeSelectnode节点被选中之前触发,返回false取消选择动作.
onSelectnode当节点选中之后触发.
onContextMenue, 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>
onDroptarget, source, point当节点被放置的时候触发. target: DOM 对象,这个节点是被放置的目标. source: 源节点. point:指明drop操作,可用值有: 'append','top' or 'bottom'.
onBeforeEditnode在编辑节点之前触发.
onAfterEditnode编辑节点之后触发.
onCancelEditnode取消编辑动作时候触发.


方法
NameParameterDescription
optionsnone返回tree 的options.
loadDatadata加载tree数据.
getNodetarget得到特定的节点对象.
getDatatarget得到特定节点数据, 包含其子节点.
reloadtarget重新加载tree数据.
getRootnone得到根节点, 返回节点对象
getRootsnone得到根节点, 返回节点数组.
getParenttarget得到父节点,target参数指明节点DOM对象.
getChildrentarget得到子节点,target 参数指明节点DOM对象.
getCheckednone得到所有选中节点.
getSelectednone得到选择节点和返回它,如果没有选择节点将返回null.
isLeaftarget解决特定的节点是否是叶子节点, target 参数指明节点DOM对象.
findid查找特定的节点和返回节点对象,代码示例: // 查找一个节点然后返回它var node = $('#tt').tree('find', 12);$('#tt').tree('select', node.target);
selecttarget选择一个节点,target 参数指明节点DOM对象.
checktarget设置特定的节点选中.
unchecktarget设置特定的节点取消选中.
collapsetarget折叠一个节点, target 参数指明节点DOM对象.
expandtarget展开一个节点, target 参数指明节点DOM对象,当节点的状态是closed的时候 和没有子节点,节点id值(参数命名为'id')将发送给服务器请求子节点数据.
collapseAlltarget折叠所有节点.
expandAlltarget展开所有节点.
expandTotarget展开从根节点到指定的节点 .
appendparam附加一些子节点到父节点中. 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' }] }]});
toggletarget切换expanded/collapsed 节点的状态,target 参数指明节点DOM对象.
insertparam插入一个节点到特定节点的之前或之后.'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' } });}
removetarget移除一个节点和其子节点,target 参数指明节点DOM对象.
poptarget移除一个节点和其子节点,这个方法和remove类似,但是它返回移除的节点数据.
updateparam更新特定的节点. 'param'参数包含以下属性: target(DOM 对象, 更新的节点),id,text,iconCls,checked,等等. 示例代码: // 更新选择的节点文本var node = $('#tt').tree('getSelected');if (node){ $('#tt').tree('update', { target: node.target, text: 'new text' });}
enableDndnone启用 drag 和 drop 功能.
disableDndnone禁用 drag 和drop 功能.
beginEdittarget开始编辑一个节点.
endEdittarget结束编辑一个节点.
cancelEdittarget取消编辑一个节点.
分享到:
评论

相关推荐

    easy ui tree比较全的功能

    Easy UI Tree是一款基于jQuery和Easy UI框架的树形控件,它提供了丰富的功能,用于在Web应用中展示层次结构的数据。这个"easy ui tree比较全的功能"的示例旨在为初学者提供一个全面了解和学习Easy UI Tree特性的平台...

    easy ui tree 前后端树形结构项目 权限管理demo

    本项目"easy ui tree 前后端树形结构项目 权限管理demo"提供了一个完整的解决方案,使用了Easy UI Tree库来实现前端的树形结构,并结合SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库进行后端处理。...

    jquery easy ui tree

    标题 "jquery easy ui tree" 指的是使用 jQuery Easy UI 实现的树形组件。 在 Easy UI 的 Tree 组件中,你可以通过简单的 HTML 结构和 JavaScript 配置来创建树形结构。以下是一些关键知识点: 1. **HTML 结构**:...

    Jquery easy ui Tree组件使用(tree11.json当数据源有bug)

    然而,标题提到"Jquery easy ui Tree组件使用(tree11.json当数据源有bug)",这可能意味着在实际使用中遇到了问题。常见的问题可能包括: 1. **数据格式错误**:确保`tree11.json`文件的JSON格式正确无误,避免语法...

    easy ui中文版

    - **组件丰富**:Easy UI 提供了如表格(datagrid)、树形控件(tree)、面板(panel)、表单元素(form)等多种组件,可以快速搭建网页布局。 - **响应式设计**:支持移动设备,可以自适应不同屏幕尺寸,提供良好...

    jQuery easy-ui 富客户端AJAX框架

    1. **组件丰富**:Easy-UI 提供了多种用户界面组件,如对话框(dialog)、表单(form)、面板(panel)、菜单(menu)、下拉选择框(combobox)、树形控件(tree)、表格(datagrid)等,满足开发各种复杂页面的需求...

    jquery easy ui模板

    **jQuery Easy UI 模板详解** jQuery Easy UI 是一个基于 jQuery 的前端开发框架,它提供了一系列的组件和样式,使得开发者能够快速构建出美观且功能丰富的 Web 应用程序。这个压缩包包含的 "jQuery Easy UI 学习...

    easy-ui框架

    1. **组件库**:Easy-UI提供了多种UI组件,如数据网格(datagrid)、下拉菜单(combobox)、树形视图(tree)、对话框(dialog)等,这些组件都封装了复杂的交互逻辑,使得开发者可以轻松地在页面上构建交互式元素。...

    Jquery easy ui 中文帮助手册

    除了上述内容,jQuery Easy UI 还包括对话框(dialog)、表单(form)、树(tree)、下拉列表(combobox)、日期选择器(datebox)、时间选择器(timespinner)等多种组件,这些组件都有各自独特的用法和配置选项,...

    Easy-Ui后台搭建

    Easy-Ui是一个轻量级且易于使用的前端框架,主要用于快速构建高效、美观的管理后台界面。这个框架结合了Bootstrap的网格系统、jQuery的便捷操作以及自定义的组件,为开发者提供了一套完整的UI解决方案。在"Easy-Ui...

    jquery easy ui 中文帮助

    EasyUI 的核心理念是通过简单的 HTML 标签和 CSS 类来实现复杂的 UI 功能,减轻前端开发的工作量。 ### 一、jQuery EasyUI 的基本概念 1. **组件(Widgets)**: EasyUI 包含多种组件,如 Dialog(对话框)、Grid...

    jquery easy-ui

    - **树形控件(Tree)**: 用于展示层次结构的数据,如目录结构,组织架构等。通过简单的配置,可以实现节点的展开、折叠、选择等功能。 - **表单(Form)**: 支持各种输入类型,如文本框、下拉框、复选框等,并且...

    Easy UI前端框架

    Easy UI的组件包括但不限于:DataGrid(数据网格)、Form(表单)、Window(窗口)、Panel(面板)、Menu(菜单)、Tabs(标签页)、Dialog(对话框)、Tree(树形结构)、Accordion(手风琴)等。每个组件都有其...

    【JQuery Easy UI】后台管理系统的简单布局

    7. **其他组件**:除上述组件外,Easy UI 还包括树形视图(tree)、下拉选择框(combobox)、滑块(slider)等多种组件,它们共同构成了后台管理系统的基础构建块。 在实际开发中,我们需要根据项目需求,合理选择...

    jquery easy UI demo

    - **组件丰富**: 提供了诸如面板(panel)、表格(datagrid)、树形视图(tree)、下拉选择框(combobox)等多种常见 UI 组件。 - **响应式设计**: 预设的 CSS 样式支持响应式布局,使应用能在不同设备上良好显示。 ...

    Easy UI 函数包

    Easy UI 是一个流行的轻量级前端用户界面框架,专为简化网页和应用程序的界面开发而设计。这个函数包集合了一系列的JavaScript和CSS组件,能够帮助开发者快速构建美观、响应式的用户界面,提升开发效率。 Easy UI ...

    easy ui 中文API CHM格式

    总的来说,"easy ui 中文API CHM格式"和"jquery UI"都是前端开发的重要工具,结合使用可以创建出功能强大、用户体验优秀的Web应用。这个CHM文档对于学习和使用EasyUI的开发者来说是一份不可或缺的参考资料。

    jquery easy ui demo

    《jQuery Easy UI 框架深度解析与应用实践》 jQuery Easy UI 是一款基于 jQuery 的前端框架,它为开发者提供了一系列精美的UI组件,如分页、数据网格、树形结构等,极大地简化了Web应用界面的开发工作。在本篇文章...

    jquery Easy UI

    ### jQuery Easy UI 知识点概览 #### 1. 基本拖放功能 在jQuery Easy UI中,拖放功能是通过`draggable()`方法实现的,它允许将HTML元素变成可拖动的对象。在给定的教程中,通过创建三个不同的`&lt;div&gt;`元素并使用`...

    jquery-easy-ui

    jQuery Easy UI 的 Tree 组件提供了丰富的选项和事件,支持单击、双击、拖放操作,可以轻松实现节点的展开与折叠,以及自定义节点图标和文本。通过配置 `data` 参数,我们可以将JSON数据动态加载到树中,或者通过...

Global site tag (gtag.js) - Google Analytics