GitHub下载地址

为了更直观展示表格的一大堆乱七八糟的数据,合并单元格就派上用场。。。

效果图:

贴上JSON数据(后台查询数据一定要对合并字段排序):

    [
{
"city": "广州市",
"area": "天河区",
"gdp":"100"
},
{
"city": "广州市",
"area": "海珠区",
"gdp":"101"
},
{
"city": "广州市",
"area": "番禺区",
"gdp":"102"
},
{
"city": "广州市",
"area": "增城区",
"gdp":"103"
},
{
"city": "深圳市",
"area": "罗湖区",
"gdp":"200"
},
{
"city": "深圳市",
"area": "福田区",
"gdp":"201"
},
{
"city": "深圳市",
"area": "南山区",
"gdp":"202"
},
{
"city": "深圳市",
"area": "宝安区",
"gdp":"203"
},
{
"city": "深圳市",
"area": "龙岗区",
"gdp":"204"
},
{
"city": "深圳市",
"area": "盐田区",
"gdp":"205"
},
{
"city": "广州市",
"area": "白云区",
"gdp":"206"
},
{
"city": "上海市",
"area": "黄浦区",
"gdp":"301"
},
{
"city": "上海市",
"area": "徐汇区",
"gdp":"302"
}
]

HTML代码:

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>BootstrapTable合并单元格</title> <!-- Bootstrap -->
<link th:href="@{/static/css/bootstrap/bootstrap.min.css}" rel="stylesheet" type="text/css">
<link th:href="@{/static/css/bootstrap/bootstrap-table.min.css}" rel="stylesheet" type="text/css"> <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
<!--[if lt IE 9]>
<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]-->
</head>
<body>
<table id="bootstrap-table" class="table table-hover"></table>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script th:src="@{/static/js/ajax/jquery.min.js}"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script th:src="@{/static/js/bootstrap/bootstrap.min.js}"></script>
<!-- 加载 Bootstrap-Table 插件 -->
<script th:src="@{/static/js/bootstrap/bootstrap-table.min.js}"></script>
<!-- 汉化插件 -->
<script th:src="@{/static/js/bootstrap/bootstrap-table-zh-CN.min.js}"></script>
<script type="application/javascript">
$('#bootstrap-table').bootstrapTable({
url: './../static/json/data.json',
/*sidePagination: "true",*/
pageSize: "10", //每页显示10条
search:true, //显示搜索
searchOnEnterKey:true, //Enter触发搜索
pagination: true, // 是否分页
/*singleSelect:true, //单选
checkboxHeader:false, //隐藏checkbox全选*/
columns: [
{
field: 'checkStatus',
checkbox:true
},
{
field: 'city',
title: '市'
},
{
field: 'area',
title: '区'
},
{
field: 'gdp',
title: 'GDP'
}
],
onLoadSuccess: function () {//当所有数据被加载时触发处理函数
var data = $('#bootstrap-table').bootstrapTable('getData', true);//获取当前页数据
mergeCells(data,'city',1,$('#bootstrap-table'));
},
onPageChange: function (){//当页面更改页码或页面大小时触发
var data = $('#bootstrap-table').bootstrapTable('getData', true);
mergeCells(data,'city',1,$('#bootstrap-table'));
},
}); function mergeCells(data,fieldName,colspan,target){
//声明一个map计算相同属性值在data对象出现的次数和
var sortMap = {};
for(var i = 0 ; i < data.length ; i++){
for(var prop in data[i]){
if(prop == fieldName){
var key = data[i][prop] //fieldName的value
if(sortMap.hasOwnProperty(key)){
sortMap[key] = sortMap[key] * 1 + 1;
} else {
sortMap[key] = 1;
}
break;
}
}
}
/*for(var prop in sortMap){
console.log(prop,sortMap[prop])
}*/
//合并单元格
var index = 0;
for(var prop in sortMap){
var count = sortMap[prop] * 1;
$(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count});
index += count;
}
}
</script>
</body>
</html>

BootStrap Table 合并单元格的更多相关文章

  1. css table 合并单元格

    1. css table 合并单元格 colspan:合并列, rowspan:合并行, 合并行的时候,比如rowspan="2",它的下一行tr会少一列: 合并列的时候,比如co ...

  2. table中tr间距的设定table合并单元格 colspan(跨列)和rowspan(跨行)

    table中的tr的默认display:table-row,虽然可以修改为display:block但是就失去了tr特有的显示效果,如(td自动对齐): 并且在tr中对起设定padding是有用的,可 ...

  3. table合并单元格

    table合并单元格 新建一张表格.要求表格有四行四列,当中第一行的四列合并,第二行.第三行和第四行的第一列合并 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  4. ant design Table合并单元格合并单元格怎么用?

    1.ant design table合并单元格怎么用?

  5. 一种HTML table合并单元格的思路

    /** * 合并单元格 * @param table1 表格的ID * @param startRow 起始行 * @param col 合并的列号,对第几列进行合并(从0开始).如果传下来为0就是从 ...

  6. table合并单元格colspan和rowspan .

    colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显 ...

  7. JQuery Table 合并单元格-解决Bug版本

    网络中提供的方法是: <script type="text/javascript"> function _w_table_rowspan(_w_table_id, _w ...

  8. bootstrap table 根据单元格中的数据改变单元格的样式

    在bootstrap-table.js里面列属性 formatter就是用来格式化单元格的,其默认值是undefined 类型是function,function(value,  row, index ...

  9. table合并单元格 colspan(跨列)和rowspan(跨行)

    colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显 ...

随机推荐

  1. python--unittest测试框架

    unittest中最核心的四个概念是:test case, test suite, test runner, test fixture

  2. Win10 CompatTelRunner.exe占用磁盘高的解决办法

    (1)在运行里输入  taskschd.msc, 打开windows计划任务 (2)参考下图在Application Experience下,1,2,3,4步骤,把所有带有 “CompatTelRun ...

  3. Python爬虫实战之爬取糗事百科段子【华为云技术分享】

    首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...

  4. VS2008激活找不到密匙输入框

    VS2008试用版到期后会无法使用,网上一搜就能找到很多激活码: Visual Studio 2008 Professional Edition: XMQ2Y-4T3V6-XJ48Y-D3K2V-6C ...

  5. webapi 集成NLog

    参考项目代码:SwaggerDemoApi 安装 打开nuget管理器--->搜索nlog,安装箭头所指的两个文件到你的项目中,config安装到你的API项目即可,nlog文件安装到你用得到n ...

  6. 纯C语言实现线性链表

    #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode{ ElemT ...

  7. springmvc上传图片到Tomcat虚拟目录

    一.简介 通过把文件上传到tomcat的虚拟目录,实现代码和资源文件分开. 二.环境 spring+springmvc+mybatis 三.代码实现 1.导入文件上传的jar <dependen ...

  8. open live writer安装以及代码高亮、折叠插件安装

    一.目的 方便在本地写博客,不用在浏览器上写. 二.open live writer的安装 下载open live writer 这是我的 链接:https://pan.baidu.com/s/1u8 ...

  9. MySQL 中操作excel表格总结

    最近在负责一个项目的落地工作,需要每天导出客户通讯录进行统计各地区注册用户数.使用用户数.未使用用户数.注册不符合规范的用户等等操作,刚开始用户数量比较少,直接在excel中筛选查询就行,但是随着用户 ...

  10. B端产品经理的金字塔能力模型

    工作这几年,时长思考,作为B端产品经理自己应该具备什么样的能力? 虽然工作依旧在有条不紊的进行,但是时常会陷入到对知识或者能力的焦虑当中.特别时是工作三五年,产品经理进阶门槛时. 虽然产品经理的能力是 ...