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 相关文章推荐
jquery json 实例代码
Dec 02 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
Mar 14 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
js的各种排序算法实现(总结)
Jul 23 Javascript
js从外部获取图片的实现方法
Aug 05 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
Bootstrap学习笔记之环境配置(1)
Dec 07 Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
web 页面分页打印的实现
2009/06/22 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
javascript轮播图算法
2016/10/21 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
自考毕业自我鉴定
2014/03/18 职场文书
爱我中华教学反思
2014/04/28 职场文书
大学开学计划书
2014/04/30 职场文书
政治思想表现评语
2014/05/04 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
秋冬农业生产标语
2014/10/09 职场文书
党员违纪检讨书
2015/05/05 职场文书
同学会感言
2015/07/30 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
DQL数据查询语句使用示例
2022/12/24 MySQL