jQuery EasyUI API 中文文档 – TreeGrid 树表格使用介绍

下面是针对“jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍”的完整攻略:

TreeGrid 概述

TreeGrid 是基于 jQuery EasyUI 的组件之一,它可以将数据以树状结构的形式展示在表格中,支持分页、排序、过滤、展开/折叠等功能。

TreeGrid 的使用

1. 创建 TreeGrid

在页面上创建一个 div 容器,并指定容器 ID。

<div id="tt"></div>

然后,在 JavaScript 代码中调用 easyui 的 treegrid 方法初始化一个 TreeGrid:

$('#tt').treegrid({
    url: 'data.json',
    idField: 'id',
    treeField: 'name'
});

上面的代码以一个 JSON 数据源作为展示数据,其中 idField 指定 id 字段名,treeField 指定要作为树形节点的字段名。

2. 加载数据

通过 url 属性可以指定要加载数据的地址,也可以通过 data 属性指定 JSON 数据。

$('#tt').treegrid({
    url: 'data.json',
    /* 或者 */
    data: [{
        id: 1,
        name: 'node 1'
    }]
});

3. 自定义列

$('#tt').treegrid({
    columns: [[
        /* 普通列 */
        { field: 'id', title: 'ID', width: 50 },
        { field: 'name', title: '名称', width: 100 },
        { field: 'price', title: '价格', width: 50 },
        /* 自定义列,按钮 */
        { field: 'action', title: 'Action', width: 150, formatter: function(value,row,index){
            return '<a href="#">编辑</a> <a href="#">删除</a> <a href="#">详情</a>';
        }}
    ]]
});

上面代码中通过 formatter 属性自定义了一个“操作”列,按钮可以点击跳转到相关页面。

4. 分页

通过 pagination 属性可以开启分页功能:

$('#tt').treegrid({
    url: 'data.json',
    pagination: true
});

5. 扩展功能

TreeGrid 提供许多扩展功能,例如:

  • 右键菜单:通过 onContextMenu 事件实现;
  • 展开/折叠节点:通过 expandcollapse 方法实现;
  • 排序:通过 sortNamesortOrder 属性实现;
  • 过滤:通过 filterRules 属性实现等。

示例说明

示例 1

下面的代码展示了如何创建一个简单的 TreeGrid,并加载数据,开启分页功能:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>TreeGrid 示例</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/jquery-easyui/1.7.0/themes/default/easyui.css">
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/jquery-easyui/1.7.0/jquery.easyui.min.js"></script>
</head>
<body>
    <div id="tt"></div>
    <script>
        $(function(){
            $('#tt').treegrid({
                url: 'data.json',
                idField: 'id',
                treeField: 'name',
                pagination: true,
                columns: [[
                    { field: 'id', title: 'ID', width: 50 },
                    { field: 'name', title: '名称', width: 100 },
                    { field: 'price', title: '价格', width: 50 },
                    { field: 'action', title: 'Action', width: 150, formatter: function(value,row,index){
                        return '<a href="#">编辑</a> <a href="#">删除</a> <a href="#">详情</a>';
                    }}
                ]]
            });
        });
    </script>
</body>
</html>

其中,data.json 文件内容如下:

[
    {
        "id": 1,
        "name": "Parent 1",
        "price": 100,
        "children": [
            {
                "id": 2,
                "name": "Child 1",
                "price": 50
            },
            {
                "id": 3,
                "name": "Child 2",
                "price": 60
            }
        ]
    },
    {
        "id": 4,
        "name": "Parent 2",
        "price": 200,
        "children": [
            {
                "id": 5,
                "name": "Child 3",
                "price": 80
            },
            {
                "id": 6,
                "name": "Child 4",
                "price": 120
            }
        ]
    }
]

该示例展示了一个树形结构的数据,默认显示第一层节点,每个节点包含 ID、名称、价格等信息,同时提供了编辑、删除、查看详情的功能。

示例 2

下面的代码展示了如何通过事件处理函数扩展 TreeGrid:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>TreeGrid 扩展示例</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/jquery-easyui/1.7.0/themes/default/easyui.css">
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/jquery-easyui/1.7.0/jquery.easyui.min.js"></script>
</head>
<body>
    <div id="tt"></div>
    <script>
        $(function(){
            $('#tt').treegrid({
                url: 'data.json',
                idField: 'id',
                treeField: 'name',
                columns: [[
                    { field: 'id', title: 'ID', width: 50 },
                    { field: 'name', title: '名称', width: 100 },
                    { field: 'price', title: '价格', width: 50 },
                    { field: 'action', title: 'Action', width: 150, formatter: function(value,row,index){
                        return '<a href="#">编辑</a> <a href="#">删除</a> <a href="#">详情</a>';
                    }}
                ]],
                onContextMenu: function(e,row){
                    e.preventDefault();
                    $('#mm').menu('show', {left: e.pageX, top: e.pageY});
                }
            });

            $('#mm').menu({
                onClick: function(item){
                    alert(item.name);
                }
            });
        });
    </script>

    <div id="mm" class="easyui-menu" style="width:100px;">
        <div data-options="name:'edit'">编辑</div>
        <div data-options="name:'delete'">删除</div>
        <div data-options="name:'detail'">详情</div>
    </div>
</body>
</html>

该示例扩展了右键菜单功能,当鼠标右键某一行时,会弹出菜单;点击菜单项时,会弹出相应提示框。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery EasyUI API 中文文档 – TreeGrid 树表格使用介绍 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JavaScript将数组转换为链表的方法

    将数组转换为链表是一种常见的操作,它可以让我们更方便地对数组进行各种操作。下面是一些方法可以用来实现这个转换。 方法一:基于循环的转换 可以使用循环遍历原始数组,并将每个元素都添加到链表的末尾。下面是一个示例代码: function arrayToList(arr) { let head = null; for (let i = arr.length – 1…

    jquery 2023年5月28日
    00
  • jQWidgets jqxGrid cardviewcolumns属性

    以下是关于“jQWidgets jqxGrid cardviewcolumns属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 cardviewcolumns 属性用于设置卡片视图中显示的列。 完整攻略 以下是 jqxGrid 控件 cardviewcolumns 属性的完整攻略。 定义 cardviewcolumns 属性 在 jqxGr…

    jquery 2023年5月11日
    00
  • jQuery Mobile Pagecontainer移除事件

    jQuery Mobile Pagecontainer是一种用于处理移动设备上网页应用页面导航的工具,利用该工具可以实现快速定位到目标页面、进行数据预加载等功能。在使用Pagecontainer时,经常需要根据需要动态地添加或移除页面元素。本文将详细讲解如何使用jQuery Mobile Pagecontainer移除事件。 1. Pagecontainer…

    jquery 2023年5月12日
    00
  • jQuery的事件预绑定

    jQuery的事件预绑定,也称为事件委托,是一种优化事件处理程序的方式。本质上,事件预绑定是将事件绑定到祖先元素以捕获子元素的事件。这样做的好处是,可以减少绑定事件处理程序的数量,提高性能,还可以处理动态添加的元素。 以下是事件预绑定的完整攻略: 1. 什么是事件预绑定 事件预绑定(Event Delegation)是利用事件的冒泡机制,将事件的处理委托给事…

    jquery 2023年5月28日
    00
  • jQWidgets jqxGrid getrowid()方法

    以下是关于“jQWidgets jqxGrid getrowid()方法”的完整攻略,包含两个示例说明: 方法简介 jqxGrid 控件的 getrowid() 方法用于获取指定行的 ID。该方法的语法如下: $("#jqxGrid").jqxGrid(‘getrowid’, rowindex); 在上述语法中,#jqxGrid 表示 j…

    jquery 2023年5月10日
    00
  • jQWidgets jqxBulletChart改变事件

    jQWidgets jqxBulletChart改变事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxBulletChart是其中之一。本文将详细介绍jqxBulletChart的改变事件,包括定义、语法和示例。 改变事件的定义 jqxBulletChart的改变事件是在用户更改jqxBulletChart的值时…

    jquery 2023年5月10日
    00
  • jQWidgets jqxListBox focus()方法

    jQWidgets jqxListBox focus()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一。本文将详细介绍jqxListBox的focus()方法,包括定义、语法和示例。 focus()方法的定义 jqxListBox的focus()方法用于将焦点设置到列表框上。当列表框获…

    jquery 2023年5月10日
    00
  • jQuery简单获取键盘事件的方法

    当需要对键盘输入进行事件监听时,通过 jQuery 提供的keydown()、keyup()、keypress()方法可以轻松实现。下面将分别介绍这三个方法的用法。 事件的绑定 jQuery 中通过on()方法来绑定事件,通过该方法,可以轻松地监听特定的事件,并且可以绑定多个不同的事件。 $(selector).on(event, function(){ /…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部