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小技巧--自动隐藏红叉叉
Aug 13 Javascript
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
js闭包所用的场合以及优缺点分析
Jun 22 Javascript
详解Bootstrap创建表单的三种格式(一)
Jan 04 Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
Jun 04 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将两个关联数组合并函数提高函数效率
2014/03/18 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
JavaScript 指导方针
2007/04/05 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
小程序实现密码输入框
2020/11/16 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python切片索引用法示例
2018/05/15 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
利用python实现汉诺塔游戏
2021/03/01 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
工作简历自我评价
2015/03/11 职场文书
同事打架检讨书
2015/05/06 职场文书
2016情人节宣传语
2015/07/14 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
element tree树形组件回显数据问题解决
2022/08/14 Javascript