EasyUI–树形控件tree详解

简介: 树形控件还是经常使用的,比如菜单、部门管理等涉及到有归属关系的功能经常在前端页面采用树形结构表示。EasyUI对树形控件的封装非常的Nice,尤其是对复选框的支持简直是漂亮异常。本篇就最常用的菜单数为例演示EasyUI中tree的使用。先看示意图:

image.png

具体代码如下,注意文字描述部分说明:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>树tree示例</title>
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
  <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
  <script type="text/javascript" src="easyui/jquery.min.js"></script>
  <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
  </head>
  <body>
  <div class="easyui-panel" title="示例1 绑定json数据的树" style="width:480px;padding:10px 10px;">
    <div>注意json数据中的关键键名id/text/children/state,分别表示树节点的id值,显示文本、子节点组、节点状态(是否展开)</div>
    <div>data-options参数url表示数据来源,animate表示是否采用展开和关闭节点时的动画效果,lines表示节点间是否采用节点线(更加美观)</div>
    <div id="tree1" class="easyui-tree" data-options="url:'json/tree_data.json',animate:true,lines:true"></div>
    <a href="javascript:void(0)" class="easyui-linkbutton" onclick="getSelected()">获取选中项</a>
  </div>
  <div class="easyui-panel" title="示例  带复选框的tree" style="width:480px;padding:10px 10px;">
    <div>注意checkbox:true启用后,功能非常强大</div>
    <div>1,可以选择多个选项,并可以获取所有选中项信息</div>
    <div>2,在父节点选中后,子节点会自动全选</div>
    <div>3,子节点选中1个以上后,父节点会自动变为部分选中状态,子节点全部选中后,父节点变为选中状态</div>
    <div id="tree_check" class="easyui-tree" data-options="url:'json/tree_data.json',animate:true,checkbox:true">
    </div>
    <a href="javascript:void(0)" class="easyui-linkbutton" onclick="getChecked()">获取选中项</a>
  </div>
  <script type="text/javascript">
    function getSelected(){
      var node = $('#tree1').tree('getSelected');
      if (node){
        var id = node.id;
        var text=node.text;
        alert("id:"+id+" text:"+text);
      }
    }
    function getChecked(){
      var nodes = $('#tree_check').tree('getChecked');
      var result = '选中项:';
      for(var i=0; i<nodes.length; i++){
        result += nodes[i].id+","+nodes[i].text+"/";
      }
      alert(result);
    }
  </script>
  </body>
</html>

最后,要理解tree_data.json文件中的层级关系,在MyEclipse中编辑json文件时,可以使用右键-【format text】功能自动给json格式化,这样会好看很多。

[
    {
        "id":1,
        "text":"所有功能",
        "children":[
            {
                "id":11,
                "text":"人员管理",
                "children":[
                    {
                        "id":111,
                        "text":"添加人员"
                    },
                    {
                        "id":112,
                        "text":"删除人员"
                    },
                    {
                        "id":113,
                        "text":"修改人员信息"
                    }
                ]
            },
            {
                "id":12,
                "text":"部门管理",
                "state":"closed",
                "children":[
                    {
                        "id":121,
                        "text":"添加部门"
                    },
                    {
                        "id":122,
                        "text":"删除部门"
                    },
                    {
                        "id":123,
                        "text":"Microsoft Office"
                    },
                    {
                        "id":124,
                        "text":"Games",
                        "checked":true
                    }
                ]
            },
            {
                "id":13,
                "text":"权限管理"
            },
            {
                "id":14,
                "text":"角色管理"
            },
            {
                "id":15,
                "text":"菜单管理"
            }
        ]
    }
]


相关文章
|
12月前
easyui的tree节点的获取和选中
easyui的tree节点的获取和选中
205 0
58EasyUI 树形菜单- 树形网格动态加载
58EasyUI 树形菜单- 树形网格动态加载
42 0
57EasyUI 树形菜单- 创建复杂树形网格
57EasyUI 树形菜单- 创建复杂树形网格
57 0
56EasyUI 树形菜单- 创建基础树形网格
56EasyUI 树形菜单- 创建基础树形网格
42 0
|
数据库
easyui03(tree后台工作)
easyui03(tree后台工作)
|
缓存 前端开发
easyui02(tree前端工作)
easyui02(tree前端工作)
|
4月前
|
存储 开发框架 前端开发
在EasyUI项目中使用FileBox控件实现文件上传处理
在EasyUI项目中使用FileBox控件实现文件上传处理
|
12月前
easyui tree 默认选中第一个元素
easyui tree 默认选中第一个元素
|
JavaScript
63EasyUI 表单 - 创建树形下拉框
63EasyUI 表单 - 创建树形下拉框
73 0
60EasyUI 树形菜单- 树形网格惰性加载节点
60EasyUI 树形菜单- 树形网格惰性加载节点
37 0