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下用eval生成JSON对象
Sep 17 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
Javascript中Array.prototype.map()详解
Oct 22 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
Mar 08 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
Sep 05 Javascript
Vue.js 和 MVVM 的注意事项
Nov 07 Javascript
js初始化验证实例详解
Nov 26 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
微信小程序自定义tabBar组件开发详解
Sep 24 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 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的库,结果发现很多东西
2006/12/31 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
php的一些小问题
2010/07/03 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php中如何执行linux命令详解
2018/11/06 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
django跳转页面传参的实现
2020/09/17 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
中医专业应届生求职信
2013/11/17 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
涨价通知
2015/04/23 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
python自动化测试之Selenium详解
2022/03/13 Python