layui表格合并单元格怎么写代码

星磊同学_3544

星磊同学_3544

2026-09-16

169人浏览

原创

layui表格合并需在cols中对首行列显式设rowspan/colspan,其余行对应列设hide:true;数据须预处理分组计算跨行数,跨页合并不支持。

layui表格合并单元格怎么写代码

layui table 的 cols 配置里怎么写合并逻辑

layui 表格本身不支持自动跨行/跨列合并,得靠 cols 里的 rowspancolspan 手动控制。关键不是“怎么写代码”,而是“在哪写”——必须在列配置中对目标列显式声明 rowspancolspan,且只对「首行」生效;后续行对应位置的列要设为 hide: true 或直接不定义,否则会重复渲染。

常见错误是把 rowspan 写在所有行的同一列里,结果每行都占满行数,表格错乱。正确做法是:只在需要“作为合并起点”的那行、那列写 rowspan: N,其余 N−1 行对应列必须隐藏。

  • rowspan 必须是整数,且不能超过当前数据总行数
  • 合并列(colspan)用法类似,但更少见,多用于表头分组
  • 如果数据是异步加载的,rowspan 值需在后端或前端预处理时算好,不能依赖渲染时动态判断

实际合并前必须预处理数据结构

layui 的 data 是扁平数组,而合并依赖相邻行字段值是否相同。所以得先对原始数据按合并字段分组,再转成带 rowspan 标记的嵌套结构。比如按 category 合并,就要遍历数组,统计每个 category 连续出现几行,然后给第一行的 category 列赋 rowspan: 3,后面两行该列设为 hide: true

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载

别试图在 render 回调里改 DOM —— layui 会重绘,你的修改会被清掉。唯一可靠的位置是构造 data 数组时就塞好 rowspan 字段,再传给 table.render()

  • 推荐在 AJAX 成功回调里做分组计算,而不是用 done 回调二次处理
  • 注意空值或 undefined 会导致分组断裂,建议统一转成空字符串再比较
  • 如果合并逻辑复杂(如多级嵌套),建议封装一个 groupDataByFields(data, ['a', 'b']) 工具函数

rowspancolspancols 中的具体写法

它们不是列的属性,而是列配置项里的字段,只对当前列生效。例如要让第一列在前三行合并显示,就在第一列的配置对象里加 rowspan: 3;如果要让表头第二列横跨两列,则在对应表头列配置里写 colspan: 2,同时下一行该位置要留空或设 children: []

cols: [[
  {field: 'category', title: '分类', rowspan: 3}, // ✅ 第一列跨3行
  {field: 'name', title: '名称'},
  {field: 'price', title: '价格'}
], [
  // 第二行表头:因为第一列已 rowspan=3,这里从第二列开始填
  {field: 'spec', title: '规格'},
  {field: 'unit', title: '单位'}
]]
  • rowspan 只影响 tbody 中的单元格,不影响表头;表头用 colspan 控制横向合并
  • 如果某列既需要 rowspan 又要内容居中,得额外加 style: 'text-align: center; vertical-align: middle;'
  • 合并后若内容过长被截断,需配合 cellMinWidth 或 CSS white-space: normal

容易被忽略的兼容性坑

layui 2.8+ 对 rowspan 支持更稳定,但老版本(如 2.5.x)在开启 height 或使用 scrollbar 时可能失效。最隐蔽的问题是:当表格启用了 page: true 分页,而合并跨页了(比如第10行和第11行属于同一组,但分页后它们不在同一页),此时 rowspan 会直接失效甚至报错 Cannot read property 'rowspan' of undefined

  • 跨页合并无解,必须确保分组数据不跨页,可通过后端分页时按分组边界切分
  • IE11 下 rowspan 渲染异常概率高,建议加 table-layout: fixed 强制布局
  • table.cache 获取数据时,rowspan 字段不会自动带上,它只是渲染指令,不是数据字段

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2003

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4243

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5370

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

4798

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

683

5

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

1935

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2522

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

876

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

2799

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.3万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.5万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习