jqGrid表格底部汇总、合计行footerrow处理


Posted in Javascript onAugust 21, 2019

jqGrid提供了表格底部汇总、合计行功能,我们先看下user-guide关于jqGrid合计行都有哪些说明?然后再看个DEMO,看看jqGrid表格底部汇总、合计行到底如何实现。

1、user-guide关于jqGrid合计行的说明

1)表格配置:footerrow, boolean, 默认false

If set to true this will place a footer table with one row below the gird records and above the pager. The number of columns equal those specified in colModel
表格是否显示底部合计行。

2)表格配置:userDataOnFooter,boolean,默认false

When set to true we directly place the user data array userData in the footer if the footerrow parameter is set to true. The rules are as follows: If the userData array contains a name which matches any name defined in colModel, then the value is placed in that column. If there are no such values nothing is placed. Note that if this option is used we use the current formatter options (if available) for that column. See footerData method.
如果设为true,则userData可以用来填充汇总行。

3)汇总行赋值:footerData([string action], [object data], [boolean format])

This method gets or sets data on the grid footer row. When set data in the footer row, the data is formatted according to the formatter (if defined) in coModel. The method can be used if footerrow option is set to true.
parameters
string action - can be ‘get' or ‘set'. The default is get. ‘get' returns an object of type name:value, where the name is a name from colModel. This will return data from the footer. The other two options have no effect in this case. ‘set' takes a data object and places the values in the footer The value is formatted according to the definition of the formatter in colModel - see next parameter. The object should be in name:value pair, where the name is the name from colModel
object data - data to be set in the footer in name:value pair, where the name should correspond to the name of colModel in order to be set in the appropriate cell.
boolean format - default is true. This instruct the method to use the formatter (if set in colModel) when new values are set. A value of false will disable the using of formatter

2、一个DEMO,如何利用gridComplete事件进行表格数据汇总并赋值给合计行

1)案例截图

jqGrid表格底部汇总、合计行footerrow处理

2)html代码

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8" />
 <title>jggrid底部汇总行</title>
 
 <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" />
 <link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="external nofollow" />
 <link rel="stylesheet" href="https://cdn.bootcss.com/jqueryui/1.11.0/jquery-ui.min.css" rel="external nofollow" />
 <link rel="stylesheet" href="https://js.cybozu.cn/jqgrid/v5.3.1/css/ui.jqgrid.css" rel="external nofollow" />
 <script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
 <script src="https://js.cybozu.cn/jqgrid/v5.3.1/js/jquery.jqGrid.min.js"></script>
 <script src="https://js.cybozu.cn/jqgrid/v5.3.1/js/i18n/grid.locale-en.js"></script>
</head>
<body>
<div class="page-content container">
 <div class="page-body"> <!-- page-body -->
 <div class="panel panel-default" id="panel-orders">
  <table id="orders"></table>
 </div>
 </div>
</div>
<script type="text/javascript">
 var data = [];
 function getBills() {
 var rowCount = 10;
 for (var i = 0; i < rowCount; i ++) {
  data.push({
  sid: i,
  goods_no: i + 1,
  goods_name: '零件名称' + rowCount + i,
  car_type_name: '车型' + rowCount + i,
  package_name: '包装器具' + rowCount + i,
  unit_name: '件',
  snp: 0.89,
  bill_amount: rowCount + i,
  goods_count: rowCount + i,
  bill_no: 'BN0000000' + i,
  qrcode: '1000000000' + i,
  barcode: '1000000000' + i,
  })
 }
 $("#orders").jqGrid("clearGridData").jqGrid('setGridParam',{data: data || []}).trigger('reloadGrid');
 }
 $(function() {
 $("#orders").jqGrid({
  colModel: [
  {label: "零件号", name: "goods_no", width: 60},
  {label: "零件名称", name: "goods_name", search:false, width: 180},
  {label: "车型", name: "car_type_name", width: 70},
  {label: "包装器具", name: "package_name", width: 70},
  {label: "单位", name: "unit_name", width: 40},
  {label: "订单号", name: "bill_no", width: 120},
  {label: "订单数量", name: "goods_count", width: 80},
  ],
  datatype: 'local',
  rownumbers: true,
  height: 300,
  rowNum: 1000,
  footerrow: true,
  gridComplete: function() {
  var rows = $("#orders").jqGrid("getRowData"), total_count = 0;
     for(var i = 0, l = rows.length; i<l; i++) {
      total_count += (rows[i].goods_count - 0);
     }
     $("#orders").jqGrid("footerData", "set", {goods_name:"--合计--",goods_count:total_count});
     }
 });
 getBills();
 });
</script>
</body>
</html>

3)代码说明:

  • 表格构建时,设置:footerrow: true
  • gridComplete(jqGridGridComplete)事件处理,进行数据汇总并赋值给合计行

gridComplete fires after all the data is loaded into the grid and all other processes are complete. Also the event fires independent from the datatype parameter and after sorting paging and etc. Does not fire if datatype is a defined as function.

4)获取汇总行数据

var row = $("#orders").jqGrid(“footerData”, “get”);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
CSS常用网站布局实例
Apr 03 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
Jquery中map函数的用法
Jun 03 Javascript
JS获取鼠标选中的文字
Aug 10 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
js函数柯里化的方法和作用实例分析
Apr 11 Javascript
Vue仿微信app页面跳转动画效果
Aug 21 #Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 #Javascript
深入理解Vue keep-alive及实践总结
Aug 21 #Javascript
vue element 生成无线级左侧菜单的实现代码
Aug 21 #Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 #Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 #Javascript
Vue formData实现图片上传
Aug 20 #Javascript
You might like
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python 基础知识之字符串处理
2017/01/06 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
django配置app中的静态文件步骤
2020/03/27 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python中id函数运行方式
2020/07/03 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
英语国培研修感言
2014/02/13 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
Python时间操作之pytz模块使用详解
2022/06/14 Python