bootstrap表格某一列值相同时_Bootstrap-table实现动态合并相同行(表格同名合并)

博客介绍了如何在Bootstrap表格中动态合并相同行的内容,特别是在排序后仍能保持正确合并的场景。通过计算每列相同元素的相邻重复次数,记录并使用bootstrapTable的mergeCells方法进行合并。文章强调了数据结构和算法在解决此类问题中的重要性。
摘要由CSDN通过智能技术生成

有时候表格的需求就是奇奇怪怪的,最近要做的表格需要实现当紧挨着的记录的某一列的行元素内容相同,就将其合并。要是不是相同的就不合并。如果表格数据的顺序不需要被改变,这个样子是可以很简单就完成的(只需要计算出所有相同元素出现的次数即可,不需要考虑是否紧挨着),但是当可以改变排序的时候,这个时候就有点儿问题了。可能表述的有点儿不明白,下面具体看图描述问题吧。

具体的需求,假设现在有三条记录,后台按照顺序x排好后传递给前台页面进行显示。

页面拿到数据后将相同行进行合并后可以得到右边图的效果,但是如果现在在页面选择了一个排序按钮后,现在的排序被打乱了,又该怎样去实现合并?

这里值得思考的是,后面每个列的最多的合并次数是基于前一个列的合并的次数来的,所以这里是个切入点,记录下第一列所有紧挨着的相同行内容出现的次数,然后遍历,去计算第二列所有紧挨着的相同行内容出现的次数,然后遍历,去计算第三列所有紧挨着的相同行内容出现的次数,依次下去。。。。。将每一列紧挨着的相同元素的次数都记录下来,然后拿到了这些次数,最后使用bootstrapTable自带的mergeCells方法去合并即可。越来越觉得数据结构以及算法重要性,最近太多写的程序都涉及到一些逻辑的算法,还是上学时要把这两个学好呀~~~~~~~

下面看看代码:

Created by IntelliJ IDEA.

User: Administrator

Date: 2018/6/20

Time: 14:21

To change this template use File | Settings | File Templates.

--%>

String scheme = request.getScheme();

String serverName = request.getServerName();

String contextPath = request.getContextPath();

int port = request.getServerPort();

//网站的访问跟路径

String baseURL = scheme + "://" + serverName + ":" + port

+ contextPath;

request.setAttribute("baseURL", baseURL);

%>

实现表格同名合并

$(function () {

//初始化Table

$('#table').bootstrapTable({

url: '${baseURL}/Views/cc.json',//请求后台的URL(*) 这里我用的是一个json文件

method: 'get',//请求方式(*)

toolbar: '#toolbar',//工具按钮用哪个容器

striped: true,//是否显示行间隔色

cache: false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)

pagination: true,//是否显示分页(*)

sortable: false,//是否启用排序

sortOrder: "asc",//排序方式

//queryParams: queryParams,//传递参数(*)

sidePagination: "server",//分页方式:client客户端分页,se

Bootstrap Table 是一款非常流的 jQuery 表格插件,它不仅提供了丰富的功能和样式,还支持动态合并和列。在使用 Bootstrap Table ,如果需要对表格的标题(即表头)进合并,可以通过以下方法实现: 1. 使用 colspan 属性 在表格中,可以使用 colspan 属性将多个单元格合并为一个单元格。因此,如果需要合并表头中的多个单元格,只需在 HTML 代码中设置相应的 colspan 即可。 例如,如果需要将第一列和第二列的表头合并成一个单元格,可以这样写: ```html <thead> <tr> <th colspan="2">姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> ``` 2. 使用表格插件 API Bootstrap Table 提供了一些 API 方法,可以通过 JavaScript 代码动态合并和列。其中,`mergeCells(options)` 方法可以用于合并单元格,它接受一个选项对象作为参数,可以设置要合并的单元格的起始、起始列、结束和结束列。 例如,如果需要将第一的第一列和第二列合并成一个单元格,可以这样写: ```javascript $('#table').bootstrapTable('mergeCells', { index: 0, field: 'name', colspan: 2, }); ``` 其中,`index` 属性表示要操作的的索引(从 0 开始),`field` 属性表示要操作的列的字段名,`colspan` 属性表示要合并的列数。 类似地,`mergeCells(options)` 方法也可以用于合并,只需将 `colspan` 属性改为 `rowspan` 即可。此外,还可以使用 `mergeCells(options, mergeFooter)` 方法合并表格底部的或列,其中 `mergeFooter` 参数表示是否合并底部。 总之,Bootstrap Table 提供了多种方法用于动态合并和列,可以根据实际需求选择合适的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值