📜  EasyUI jQuery DataGrid 和 Tree Widget 完整参考(1)

📅  最后修改于: 2023-12-03 14:40:55.349000             🧑  作者: Mango

EasyUI jQuery DataGrid 和 Tree Widget 完整参考

EasyUI是一款基于jQuery的UI库,由于它的易用性和可扩展性而受到广泛的欢迎。其中的DataGrid和Tree Widget是非常常用和有用的组件,可以大大提高前端开发效率。本参考将为大家详细介绍EasyUI的DataGrid和Tree Widget的使用方法。

DataGrid
初始化DataGrid

在HTML页面中引入EasyUI的CSS和JavaScript文件以及jQuery文件,然后在JavaScript文件中初始化DataGrid:

$('#dg').datagrid({
    url:'datagrid_data.json',
    columns:[[
        {field:'code',title:'Code',width:100},
        {field:'name',title:'Name',width:100},
        {field:'price',title:'Price',width:100,align:'right'}
    ]]
});

其中,dg是DataGrid的ID,url是DataGrid的数据来源,columns定义DataGrid中的列。

DataGrid的高级配置

DataGrid提供了丰富的配置选项,可以根据具体需求设置,下面是一些常用的配置选项:

$('#dg').datagrid({
    url:'datagrid_data.json',
    columns:[[
        {field:'code',title:'Code',width:100,
            editor:{
                type:'validatebox',
                options:{
                    required:true
                }
            }
        },
        {field:'name',title:'Name',width:100,
            editor:{
                type:'validatebox',
                options:{
                    required:true
                }
            }
        },
        {field:'price',title:'Price',width:100,align:'right',
            editor:{
                type:'numberbox',
                options:{
                    required:true,
                    precision:2
                }
            }
        }
    ]],
    fit:true,
    fitColumns:true,
    rownumbers:true,
    singleSelect:true,
    toolbar:'#toolbar',
    pagination:true,
    pageSize:10,
    pageList:[10,20,30,40,50],
    onBeforeEdit:function(index,row){
        row.editing = true;
        $('#dg').datagrid('refreshRow', index);
    },
    onAfterEdit:function(index,row){
        row.editing = false;
        $('#dg').datagrid('refreshRow', index);
    },
    onCancelEdit:function(index,row){
        row.editing = false;
        $('#dg').datagrid('refreshRow', index);
    }
});
DataGrid的方法

DataGrid提供了很多方便实用的方法,下面是一些常用的方法:

// 获取第1行数据
var row = $('#dg').datagrid('getRows')[0];

// 获取第1行的指定字段的值
var value = row.code;

// 修改第1行的数据
$('#dg').datagrid('updateRow',{
    index: 0,
    row: {
        code: 'P01',
        name: 'Product 01',
        price: 25.00
    }
});

// 添加数据
$('#dg').datagrid('appendRow',{
    code: 'P04',
    name: 'Product 04',
    price: 15.00
});

// 删除第2行数据
$('#dg').datagrid('deleteRow', 1);

// 获取所有选中的行
var rows = $('#dg').datagrid('getSelections');

// 获取所有数据
var rows = $('#dg').datagrid('getData').rows;

更多方法详见EasyUI DataGrid API

Tree Widget
初始化Tree

在HTML页面中引入EasyUI的CSS和JavaScript文件以及jQuery文件,然后在JavaScript文件中初始化Tree:

$('#tt').tree({
    url: 'tree_data.json',
    lines: true,
    onClick: function(node){
        console.log(node.text);
    }
});

其中,tt是Tree的ID,url是Tree的数据来源,lines表示是否显示连线效果,onClick是点击节点时的回调函数。

Tree的高级配置

Tree提供了丰富的配置选项,下面是一些常用的配置选项:

$('#tt').tree({
    url: 'tree_data.json',
    lines: true,
    animate: true,
    checkbox: true,
    cascadeCheck: false,
    onlyLeafCheck: true,
    dnd: true,
    onDrop: function(target, source, point){
        console.log(target, source, point);
    },
    onLoadSuccess: function(node, data){
        console.log(node, data);
    },
    onCheck: function(node, checked){
        console.log(node, checked);
    }
});
Tree的方法

Tree提供了很多方便实用的方法,下面是一些常用的方法:

// 获取指定节点
var node = $('#tt').tree('find','node_id');

// 获取指定节点的所有子节点
var children = $('#tt').tree('getChildren', node.target);

// 获取指定节点的所有父节点
var parents = $('#tt').tree('getParents', node.target);

// 添加节点
$('#tt').tree('append',{
    parent: node.target,
    data: [{
        id: 'node_id',
        text: 'New Node'
    }]
});

// 删除节点
$('#tt').tree('remove', node.target);

更多方法详见EasyUI Tree API

总结

EasyUI jQuery DataGrid和Tree Widget是非常有用的前端组件,可以大大提高前端开发效率。本参考详细介绍了EasyUI的DataGrid和Tree Widget的使用方法,希望能对大家有所帮助。更多API和示例详见EasyUI官网