layui 数字步进器_QUICK UI 文档

本文档介绍了如何使用layui快速创建树形表格,包括基本使用步骤和个性化设置。通过配置`tree`属性和数据格式,可以实现树结构的展开和收缩,同时提供了动态控制节点展开或收缩的方法。此外,还展示了异步加载树形数据的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树形表格

基本使用

步骤1:引入表格控件脚本

步骤2:构建表格容器

步骤3:JS代码创建树形表格

var g;

function initComplete(){

//usePager: false设置为不分页

g = $("#maingrid").quiGrid({

columns: [

{ display: '部门名', name: 'name', id:'deptId', width: 250, align: 'left' },

{ display: '部门id', name: 'id',width: 250, type: 'int', align: 'left' },

{ display: '部门parentId', name: 'parentId', width: 250, align: 'left' }

],

height: '100%', width:"100%",checkbox:true,usePager: false,url:'/getTreeGrid.action',tree: { columnId: 'deptId' }

});

}

使用Grid的tree属性来创建树形表格;

tree属性中指定columnId为某一列的id值,则树结构的展开收缩按钮就在该列。一般指定为第一列的id;

数据格式:

{"rows":[{"id":0,"parentId":-1,"name":"公司","children":[

{"id":1,"parentId":0,"name":"南京分公司","children":[

{"id":2,"parentId":1,"name":"市场部","children":[

{"id":3,"parentId":2,"name":"市场1组","children":null},

{"id":11,"parentId":2,"name":"市场2组","children":null},

{"id":12,"parentId":2,"name":"市场3组","children":null}

]},

{"id":13,"parentId":1,"name":"财务部","children":null},

{"id":14,"parentId":1,"name":"行政部","children":null},

{"id":15,"parentId":1,"name":"工程部","children":null},

{"id":16,"parentId":1,"name":"技术部","children":null},

{"id":17,"parentId":1,"name":"生产部","children":null}]

},

{"id":7,"parentId":0,"name":"杭州办事处","children":[

{"id":8,"parentId":7,"name":"接待处","children":null},

{"id":9,"parentId":7,"name":"洽谈处","children":null}

]}]}]}

说明:树形表格初始时默认全都展开的。如果希望初始时只显示第一级,点击再展开下一级。则传来的数据对应项增加:open:false,如果设置了false,则该项所有子节点数据也要增加open属性并设为false

个性设置树形表格

这里通过数据控制初始时全部收缩,自定义图标,并且参数控制点击checkbox不关联子节点。

var gridData={"rows":[

{"id":1,"parentId":0,"name":"南京分公司","iconClass":"icon_star","open":false,"children":[

{"id":2,"parentId":1,"name":"市场部","iconClass":"icon_list","open":false,"children":[

{"id":3,"parentId":2,"name":"市场1组","iconClass":"icon_mark","children":null},

{"id":11,"parentId":2,"name":"市场2组","iconClass":"icon_mark","children":null},

{"id":12,"parentId":2,"name":"市场3组","iconClass":"icon_mark","children":null}

]},

{"id":13,"parentId":1,"name":"财务部","iconClass":"icon_list","children":null},

{"id":14,"parentId":1,"name":"行政部","iconClass":"icon_list","children":null},

{"id":15,"parentId":1,"name":"工程部","iconClass":"icon_list","children":null},

{"id":16,"parentId":1,"name":"技术部","iconClass":"icon_list","children":null},

{"id":17,"parentId":1,"name":"生产部","iconClass":"icon_list","open":false,"children":[

{"id":18,"parentId":17,"name":"222","iconClass":"icon_mark","children":null}

]}

]},

{"id":7,"parentId":0,"name":"杭州办事处","iconClass":"icon_star","open":false,"children":[

{"id":8,"parentId":7,"name":"接待处","iconClass":"icon_list","children":null},

{"id":9,"parentId":7,"name":"洽谈处","iconClass":"icon_list","children":null}

]},

{"id":18,"parentId":0,"name":"郑州办事处","iconClass":"icon_star","open":false,"children":[

{"id":19,"parentId":18,"name":"接待处","iconClass":"icon_list","children":null},

{"id":20,"parentId":18,"name":"洽谈处","iconClass":"icon_list","children":null}

]},

{"id":21,"parentId":0,"name":"苏州办事处","iconClass":"icon_star","open":false,"children":[

{"id":22,"parentId":21,"name":"接待处","iconClass":"icon_list","children":null},

{"id":23,"parentId":21,"name":"洽谈处","iconClass":"icon_list","children":null}

]},

{"id":24,"parentId":0,"name":"北京办事处","iconClass":"icon_star","children":null}

]}

var g;

function initComplete(){

//usePager: false设置为不分页

g = $("#maingrid").quiGrid({

columns: [

{ display: '部门名', name: 'name', id:'deptId', width: 250, align: 'left' },

{ display: '部门id', name: 'id',width: 250, type: 'int', align: 'left' },

{ display: '部门parentId', name: 'parentId', width: 250, align: 'left' }

],

height: '100%', width:"100%",checkbox:true,usePager: false,data:gridData,autoCheckChildren:false,tree: { columnId: 'deptId' }

});

}

可以动态控制某个节点展开或收缩

function collapseRow2(){

for (var record in g.records){

if(g.records[record]['name']=="杭州办事处"){

g.collapse(g.records[record]);

}

}

}

function expandRow2(){

for (var record in g.records){

if(g.records[record]['name']=="杭州办事处"){

g.expand(g.records[record]);

}

}

}

异步加载

var gridData={"rows":[

{"value":1,"key":"南京分公司","isParent":true,"open":false},

{"value":7,"key":"杭州办事处","isParent":true,"open":false}

]}

var g;

function initComplete(){

g = $("#maingrid").quiGrid({

columns: [

{ display: '部门名', name: 'key', id:'deptId', width: 250, align: 'left'},

{ display: '部门id', name: 'value',width: 250, type: 'int', align: 'left' }

],

height: '100%', width:"100%",checkbox:true,usePager: false,data:gridData,autoCheckChildren:true,tree: { columnId: 'deptId' },treeAjax:true,

treeChildDataPath:"/organizationAction.do?method=getDepartments&parentid=",treeAutoParam:"value",treeDataFilter:filterHandler

});

}

//本例使用的是下拉框示例使用的数据,格式不符合要求,所以使用了treeDataFilter重新处理数据,正常是不用的

function filterHandler(childData){

var newData=[];

$.each(childData["list"],function(idx,item){

if(item.key=="市场部"){

item.isParent=true;

item.open=false;

}

if(item.key=="财务部"||item.key=="工程部"||item.key=="市场1组"){

item.checked=true;

}

newData.push(item);

});

return newData;

}

参数表

树形表格相关属性表

属性名

默认值

说明

treeExpandAll

false

控制点击加号一次性将所有子节点全展开还是一级级展开。默认一级级展开

autoCheckChildren

true

勾选checkbox时只选择当前一行还是将所有子节点行全部选中。默认将所有子节点行全部选中。

treeAjax

false

是否开启异步加载

treeChildDataPath

设置读取数据的url路径,异步加载时通过treeChildDataPath+ 该行treeAutoParam字段对应的值来拼出路径 读取数据

treeAutoParam

设置点击传递参数的字段名,异步加载时通过treeChildDataPath+ 该行treeAutoParam字段对应的值来拼出路径 读取数据

树形表格相关方法表:

方法名

参数

说明

appendRow

rowData 要附加的数据 targetRow 父节点 nearRow 插入的位置 rowid或者rowdata isBefore 是否在之前附加

附加新行

appendRange

rows要附加的数据 targetRow父节点 nearRow插入的位置 rowid或者rowdata isBefore是否在之前附加

一次性附加多行

collapse

rowindex或者rowdata

收缩

expand

rowindex或者rowdata

展开

toggle

rowindex或者rowdata

伸展/收缩节点

demotion

rowindex或者rowdata

降级

upgrade

rowindex或者rowdata

升级

getChildren

rowindex或者rowdata

获取子节点数据

getParent

rowindex或者rowdata

获取父节点数据

hasChildren

rowindex或者rowdata

是否包括子节点

isLeaf

rowindex或者rowdata

是否叶节点

getColumns

columnLevel

获取指定层级的Columns

树形表格相关事件表:

事件名

处理函数参数

说明

onCollapse

节点收缩时触发

onExtend

节点展开时触发

treeDataFilter

childData

异步加载时如果传递过来的数据不可控,无法符合grid的要求,可以使用treeDataFilter来进行过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值