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无缝滚动代码
Jan 03 Javascript
javascript 命名空间以提高代码重用性
Nov 13 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
Mar 04 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
webpack实用小功能介绍
Jan 02 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
自己做矿石收音机
2021/03/02 无线电
PHP也可以?成Shell Script
2006/10/09 PHP
php 缓存函数代码
2008/08/27 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP常用处理静态操作类
2015/04/03 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
python with语句的原理与用法详解
2020/03/30 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
货物运输服务质量承诺书
2014/05/29 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
施工安全协议书
2016/03/22 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers
移除Selenium中window.navigator.webdriver值
2022/06/10 Python