layui table 合并单元格
时间: 2023-05-18 19:01:23 浏览: 1811
layui table是一款基于layui框架的数据表格插件,可以实现表格分页、排序、过滤等功能,而且还支持合并单元格。
合并单元格主要是指在表格中合并相邻的单元格,将它们合并成一个单元格,从而可以显示更加复杂的数据。
在layui table中,合并单元格有两种方式实现:
第一种方式是通过设置colspan和rowspan属性来合并单元格。具体使用方法如下:
table.render({
elem: '#test',
cols: [[ //表头
{field: 'id', title: 'ID', width: 80},
{field: 'username', title: '用户名', width: 120},
{field: 'sex', title: '性别', width: 80},
{field: 'city', title: '城市', width: 100},
{field: 'sign', title: '签名', width: 200},
{field: 'experience', title: '积分', width: 100},
{field: 'score', title: '评分', width: 100},
{field: 'classify', title: '职业', width: 100},
{field: 'wealth', title: '财富', width: 100}
]],
data: [],
done: function(res, curr, count){
//合并单元格
var index = 0;
var data = res.data;
for(var i=0;i<data.length;i++){
layui.$('#test tr:eq('+index+') td:eq(0)').attr('rowspan', 2);
layui.$('#test tr:eq('+index+') td:eq(1)').attr('rowspan', 2);
layui.$('#test tr:eq('+index+') td:eq(2)').attr('rowspan', 2);
index += 2;
}
}
});
第二种方式是通过设置lay-id属性来合并单元格。具体使用方法如下:
table.render({
elem: '#test',
url: '/demo/table/user/',
method: 'get',
cols: [[
{field:'id', title:'ID', width:80, sort:true, fixed: 'left'}
,{field:'username', title:'用户名', width:120}
,{field:'sex', title:'性别', width:80, sort:true}
,{field:'city', title:'城市', width:100}
,{field:'sign', title:'签名', width:200}
,{field:'experience', title:'积分', width:100, sort:true}
,{field:'score', title:'评分', width:100, sort:true}
,{field:'classify', title:'职业', width:100}
,{field:'wealth', title:'财富', width:135, sort:true, fixed: 'right'}
]],
id: 'test',
page: true,
limit: 10,
height: 'full-200',
done:function(res, curr, count){
//合并单元格
var data = res.data;
var mergeList = ['username','city','classify'];
for(var i=0;i<mergeList.length;i++){
var mergeArray = [];
var mergeCount = 1;
for(var j=0;j<data.length;j++){
if(j==data.length-1){
mergeArray.push(mergeCount);
}else{
if(data[j][mergeList[i]]==data[j+1][mergeList[i]]){
mergeCount++;
}else{
mergeArray.push(mergeCount);
mergeCount = 1;
}
}
}
var id = '#' + layui.table.config.id;
layui.$(id + ' tbody tr').each(function(rowIndex){
var td = layui.$(this).find('td[data-field='+mergeList[i]+']');
for(var k = 0;k<td.length;k++){
if(mergeArray[rowIndex] && mergeArray[rowIndex]>1){
layui.$(td[k]).attr('rowspan', mergeArray[rowIndex]);
mergeArray[rowIndex]--;
}
}
})
}
}
});
以上是两种实现layui table合并单元格的方法,具体根据实际需求而定。
阅读全文