bootstrap Table实现合并相同行


Posted in Javascript onJuly 19, 2019

本文实例为大家分享了bootstrapTable实现合并相同行的具体代码,供大家参考,具体内容如下

方法:调用mergeCells(data, fieldName, target),可以实现合并相同行

bootstrap Table实现合并相同行

var table = $("#table");
 // 初始化表格
    table.bootstrapTable({
     url: $.fn.bootstrapTable.defaults.extend.index_url,
     pk: 'id',
     sortName: 'update_time',
     search: false,
     toolbar: '#toolbar',
     commonSearch: true,
     pageSize : 12,
     searchFormVisible: true,
     queryParams: function (params) {
      //这里可以追加搜索条件
      var filter = JSON.parse(params.filter);
      var op = JSON.parse(params.op);
      //这里可以动态赋值,比如从URL中获取admin_id的值,filter.admin_id=Fast.api.query('admin_id');
      // filter.admin_id = 1;
      if(filter.is_bujiao=='是')
       filter.is_bujiao=1
      if(filter.is_bujiao=='否')
       filter.is_bujiao=0
      op.username = "like";
      params.filter = JSON.stringify(filter);
      params.op = JSON.stringify(op);
      return params;
     },
     columns: [
      [ 
      {field: 'total_order_id', title: '总订单号',sortable: true,width: "150px",formatter: Table.api.formatter.search}
      ]
     ],
     
     onLoadSuccess: function (data) {
      mergeCells(data, "total_order_id", $("#table"));
     },
    });
 
// 为表格绑定事件
Table.api.bindevent(table);
/**
 * 合并相同行
 * @param data 原始数据(在服务端完成排序)
 * @param fieldName 合并属性数组
 * @param target 目标表格对象
 */
function mergeCells(data, fieldName, target) {
 setTimeout(function () {
  if (data.rows.length == 0) {
   return;
  }
  var numArr = [];
  var number=0;
  var classzhi='dan';
  if( data.rows.length>1){
   for (let i = 0; i < data.rows.length; i++) {
    if(data.rows[i][fieldName]!='' && data.rows[i][fieldName]!='-'){
     if(data.rows[i-1]){
      if(data.rows[i-1][fieldName]!='' && data.rows[i-1][fieldName]!='-'){
       if(data.rows[i-1][fieldName]==data.rows[i][fieldName]){
        number++
       }
       else{
        number=number+1
        numArr.push({index:i-number,number:number,pan:'1'})
        number=0
       }
      }
     }
     if(!data.rows[i+1]){
      number=number
      numArr.push({index:i-number,number:number+1,pan:'2'})
      number=0
     }else{
      if(data.rows[i+1][fieldName]=='' || data.rows[i+1][fieldName]=='-'){
       number=number
       numArr.push({index:i-number,number:number+1,pan:'3'})
       number=0
      }
     }
    }else{
     numArr.push({index:i,number:1,pan:'4'})
    }
   }
  }else{
   numArr.push({index:0,number:1,pan:'5'})
  }
  // console.log(numArr);
  for (let x = 0; x < numArr.length; x++) {
   if(x%2){
    for(let y=0;y<numArr[x]['number'];y++){
     $(target).children('tbody').children('tr').eq(numArr[x]['index']+y).css('background','#ccc')
    }
   }else{
    for(let y=0;y<numArr[x]['number'];y++){
     $(target).children('tbody').children('tr').eq(numArr[x]['index']+y).css('background','#FFF')
    }
   }
   $(target).bootstrapTable('mergeCells', { index: numArr[x]['index'], field: fieldName, colspan: 1, rowspan: numArr[x]['number']});
  }
 },0)
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js计算页面刷新的次数
Jul 20 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
如何使用Javascript正则表达式来格式化XML内容
Jul 04 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
Aug 01 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
javaScript 连接打印机,打印小票的实例
Dec 29 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 #Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 #Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 #Javascript
bootstrap table插件动态加载表头
Jul 19 #Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 #Javascript
VueJS 取得 URL 参数值的方法
Jul 19 #Javascript
vue自定义表单生成器form-create使用详解
Jul 19 #Javascript
You might like
php下实现折线图效果的代码
2007/04/28 PHP
discuz安全提问算法
2007/06/06 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python游戏地图最短路径求解
2019/01/16 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
python中count函数知识点浅析
2020/12/17 Python
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
活动志愿者自荐信
2014/01/27 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书