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 相关文章推荐
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
jQuery对象的selector属性用法实例
Dec 27 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
jquery实现的点击翻书效果代码
Nov 04 Javascript
js实现的彩色方块飞舞奇幻效果
Jan 27 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
Dec 11 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 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对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
详解如何较好的使用js
2016/12/16 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
基于Vue开发数字输入框组件
2017/12/19 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python实现自动登录
2018/09/17 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
Python collections模块的使用方法
2020/10/09 Python
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
职务任命书范本
2014/06/05 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
新生开学寄语大全
2015/05/28 职场文书
爱护公物主题班会
2015/08/17 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript