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实现的简单拖拽效果
Mar 18 Javascript
在Javascript中处理字符串之big()方法的使用
Jun 08 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
jQuery中get方法用法分析
Dec 07 Javascript
js实现二级导航功能
Mar 03 Javascript
Vue Cli与BootStrap结合实现表格分页功能
Aug 18 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
微信小程序防止多次点击跳转(函数节流)
Sep 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/02/13 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
php压缩文件夹最新版
2018/07/18 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
jquery validate demo 基础
2015/10/29 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
javascript实现下雨效果
2017/03/27 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
UNIX特点都有哪些
2016/04/05 面试题
求职推荐信范文
2013/12/01 职场文书
食品工程专业求职信
2014/06/15 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
在职证明书模板
2015/06/15 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
我收到了德劲DE1107
2022/04/05 无线电
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS