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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
jquery利用event.which方法获取键盘输入值的代码
Oct 09 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
Vue.js的动态组件模板的实现
Nov 26 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 Javascript
vue 遮罩层阻止默认滚动事件操作
Jul 28 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python中的异常处理简明介绍
2015/04/13 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python使用thrift教程的方法示例
2019/03/21 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
python实现最大优先队列
2019/08/29 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
法制演讲稿
2014/09/10 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
详解pytorch创建tensor函数
2022/03/22 Python
Pandas 数据编码的十种方法
2022/04/20 Python