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 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 Javascript
最简单的jQuery程序 入门者学习
Jul 09 Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
JS模拟并美化的表单控件完整实例
Aug 19 Javascript
详解javascript数组去重问题
Nov 06 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 Javascript
vue+express 构建后台管理系统的示例代码
Jul 19 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 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
php4的session功能评述(二)
2006/10/09 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php中strtotime函数用法详解
2014/11/15 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
动态样式类封装JS代码
2009/09/02 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
javascript模拟命名空间
2015/04/17 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
python绘图方法实例入门
2015/05/19 Python
python插入排序算法实例分析
2015/07/03 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
python读取文件名称生成list的方法
2018/04/27 Python
python获取代码运行时间的实例代码
2018/06/11 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
咖啡厅创业计划书范本
2014/01/22 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL