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操作输入框中选择内容兼容IE及其他主流浏览器
Apr 22 Javascript
Bootstrap每天必学之面板
Nov 30 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
javascript中Date对象的使用总结
Nov 21 Javascript
js实现右键菜单功能
Nov 28 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
深入了解js原型模式
May 30 Javascript
openlayers 3实现车辆轨迹回放
Sep 24 Javascript
原生JavaScript实现换肤
Feb 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遍历目录并返回统计目录大小
2014/06/09 PHP
PHP中的事务使用实例
2015/05/26 PHP
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
Vue实现手机计算器
2020/08/17 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python的设计模式编程入门指南
2015/04/02 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python2与Python3的区别实例总结
2019/04/17 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
什么是索引指示器
2012/08/20 面试题
课程设计心得体会
2013/12/28 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
车间统计员岗位职责
2015/04/14 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
pt-archiver 主键自增
2022/04/26 MySQL