Bootstrap-table使用footerFormatter做统计列功能


Posted in Javascript onSeptember 07, 2018

写在前面:

在做表格的时候,难免会碰到做统计的时候。由于在项目中涉及到做统计的功能比较简单,之后也就没有过多的去研究更复杂的,这里简单记录下。

这次就直接先上图:一个简单的例子

Bootstrap-table使用footerFormatter做统计列功能

看到效果图还是很好的,也比较的简单,下面看一下具体的代码实现,这里也就直接上代码了。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<% String scheme = request.getScheme();
 String serverName = request.getServerName();
 String contextPath = request.getContextPath();
 int port = request.getServerPort();
 //网站的访问跟路径
 String baseURL = scheme + "://" + serverName + ":" + port
     + contextPath;
 request.setAttribute("baseURL", baseURL);
 System.out.println("baseURL:" + baseURL);
%>
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8" />
 <%--设置IE渲染方式(文档)默认为最高(这部分可以选择添加也可以不添加)--%>
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <title>Work Members</title>
 <!--图标样式-->
 <link rel="stylesheet" type="text/css" href="${baseURL}/Bootstrap/bootstrap/css/bootstrap.min.css" rel="external nofollow" />
 <link href="${baseURL}/Bootstrap/bootstrap-table/bootstrap-table.css" rel="external nofollow" rel="stylesheet" />
 <link href="${baseURL}/Bootstrap/bootstrap-select/css/bootstrap-select.css" rel="external nofollow" rel="stylesheet" />
 <link href="${baseURL}/Bootstrap/bootstrap-dialog/css/bootstrap-dialog.css" rel="external nofollow" rel="stylesheet" />
 <!-- inline styles related to this page -->
 <!-- ace settings handler -->
 <script src="${baseURL}/Bootstrap/bootstrap/assets/js/jquery-2.0.3.min.js"></script>
 <!--[if IE]>
 <!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>-->
 <script src="${baseURL}/Bootstrap/bootstrap/assets/js/jquery-1.10.2.min.js"></script>
 <script src="${baseURL}/Bootstrap/bootstrap/assets/js/bootstrap.min.js"></script>
 <script src="${baseURL}/Bootstrap/bootstrap-table/bootstrap-table.js"></script>
 <style type="text/css">
  table,table tr th, table tr td {
   border:1px solid #fac090;
  }
  /*解决设置表头列宽无效*/
  #table{
   table-layout: fixed;
  }
 </style>
</head>
<body >
<div style="">
 <table id="table_showMembers"></table>
</div>
</body>
<script type="text/javascript">
  $(function () {
    var table_showMembers = $('#table_showMembers').bootstrapTable({
      url: '${baseURL}/listProjectWorkItemAssignmentByProjAndWorkItemId?projId=151&workItemId=1',
      method: 'get',//请求方式(*)
      toolbar: '#toolbar',//工具按钮用哪个容器
      striped: true,//是否显示行间隔色
      cache: false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
      pagination: false,//是否显示分页(*)
      sortable: false,//是否启用排序
      sortOrder: "asc",//排序方式
      queryParams: function (params) {//自定义参数,这里的参数是传给后台的,我这是是分页用的
        return {//这里的params是table提供的
           startIndex: params.offset,//从数据库第几条记录开始
           pageSize: params.limit//每页记录数
          };
      },//传递参数(*)
      sidePagination: "server",//分页方式:client客户端分页,server服务端分页(*)
      pageNumber: 1,//初始化加载第一页,默认第一页
      pageSize: 1,//每页的记录行数(*)
      pageList: [2, 4, 6, 8],//可供选择的每页的行数(*)
      // search: true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端
      contentType: "application/x-www-form-urlencoded",
      strictSearch: true,
      //showColumns: true,//是否显示内容列下拉框
      //showRefresh: true,//是否显示刷新按钮
      minimumCountColumns: 2,//最少允许的列数
      clickToSelect: true,//是否启用点击选中行
      //height: 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
      width:'50%',
      uniqueId: "hrPerCode",//每一行的唯一标识,一般为主键列
      //showToggle: true,//是否显示详细视图和列表视图的切换按钮
      cardView: false,//是否显示详细视图
      detailView: false,//是否显示父子表
      checkboxHeader :true, //隐藏表头的checkbox
      singleSelect: false, //开启单选
      showFooter:true, //开启底部
      columns: [
        {
          field: 'perCode',
          title: '工?',
          valign:'middle',
          align:'center',
          visible:true, //隐藏列
          width:'100px',
          footerFormatter: function(value){
            return "Total Work item hours   ";
          }
        },
        {
          field: 'perName',
          title: '姓名',
          align:'center',
          width:'150px',
        },
        {
          field: 'hasWorkedHours',
          title: 'Invested hours',
          align:'center',
          width:'80px',
          formatter: function(value,row,index){
            return row.hasWorkedHours+"H";
          },
          //计算此列的值
          footerFormatter: function(rows){
            var sum = 0;
            for (var i=0;i<rows.length;i++) {
              sum += rows[i].hasWorkedHours
            }
            return sum+"H";
          }
        },
      ],
      onPostBody:function () {
        //合并页脚
        merge_footer();
      }
    });
  });
  //合并页脚
  function merge_footer() {
    //获取table表中footer 并获取到这一行的所有列
    var footer_tbody = $('.fixed-table-footer table tbody');
    var footer_tr = footer_tbody.find('>tr');
    var footer_td = footer_tr.find('>td');
    var footer_td_1 = footer_td.eq(0);
    //由于我们这里做统计只需要两列,故可以将除第一列与最后一列的列全部隐藏,然后再设置第一列跨列
    //遍历隐藏中间的列 下标从1开始
    for(var i=1;i<footer_td.length-1;i++) {
      footer_td.eq(i).hide();
    }
    //设置跨列
    footer_td_1.attr('colspan', footer_td.length-1).show();
    //这里可以根据自己的表格来设置列的宽度 使对齐
    footer_td_1.attr('width', "910px").show();
  }
</script>
</html>

总结

以上所述是小编给大家介绍的Bootstrap-table使用footerFormatter做统计列的实例代码 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
js常用代码段整理
Nov 30 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
学习JavaScript设计模式之代理模式
Jan 12 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
JS实现一个简单的日历
Feb 22 Javascript
vue+element加入签名效果(移动端可用)
Jun 17 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 #jQuery
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 #Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
Sep 07 #Javascript
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 #jQuery
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 #Javascript
Vue中使用sass实现换肤功能
Sep 07 #Javascript
jQuery中each遍历的三种方法实例分析
Sep 07 #jQuery
You might like
php str_pad 函数使用详解
2009/01/13 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
Javascript Throttle &amp; Debounce应用介绍
2013/03/19 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python中垃圾回收和del语句详解
2018/11/15 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
python函数超时自动退出的实操方法
2020/12/28 Python
美国在线购物频道:Shop LC
2019/04/21 全球购物
数控专业推荐信范文
2013/12/02 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
大学军训感言600字
2014/02/25 职场文书
董事长助理工作职责
2014/06/08 职场文书
加强作风建设心得体会
2014/10/22 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
财务个人年度总结范文
2015/02/26 职场文书
暑假安全保证书
2015/02/28 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js