FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
123
返回列表 发新帖
楼主: ◇辉◆:
打印 上一主题 下一主题

【已解决】Grid底部合计行功能实现,绝对定位到表格底部!

[复制链接]
地板
发表于 2013-6-4 17:03:53 | 只看该作者
能显示在分页条的那里,有本页合计和总合计,就完美了。
板凳
发表于 2013-6-4 16:17:46 | 只看该作者
多谢,下个版本会增加几个示例,演示如果制作合计行。

-增加合计行示例grid/grid_summary.aspx(◇辉◆:)。
-增加服务器端合计行示例grid/grid_summary_serverside.aspx(◆◇提拉米苏℡)。






需要写部分JS和CSS代码:
  1. <script>

  2.         var gridClientID = '<%= Grid1.ClientID %>';

  3.         function calcGridSummary(grid) {
  4.             var donateTotal = 0, store = grid.getStore(), view = grid.getView(), storeCount = store.getCount();

  5.             // 防止重复添加了合计行
  6.             if (Ext.get(view.getRow(storeCount - 1)).hasClass('mygrid-row-summary')) {
  7.                 return;
  8.             }

  9.             // 遍历每一行数据,计算汇总数据
  10.             store.each(function (record) {
  11.                 // 注:donate是列的ColumnID属性
  12.                 donateTotal += parseInt(record.data["donate"]);
  13.             });
  14.             var donateAvg = donateTotal / storeCount;


  15.             store.add(new Ext.data.Record({
  16.                 'major': '合计:',
  17.                 'donate': donateTotal
  18.             }));

  19.             store.add(new Ext.data.Record({
  20.                 'major': '平均:',
  21.                 'donate': donateAvg
  22.             }));


  23.             // 为合计行添加自定义样式(隐藏序号列、复选框列,取消 hover 和 selected 效果)
  24.             Ext.get(view.getRow(storeCount)).addClass('mygrid-row-summary');
  25.             Ext.get(view.getRow(storeCount + 1)).addClass('mygrid-row-summary');

  26.         }

  27.         // 页面第一个加载完毕后执行的函数
  28.         function onReady() {
  29.             var grid = X(gridClientID);
  30.             grid.addListener('viewready', function () {
  31.                 calcGridSummary(grid);
  32.             });

  33.             // 防止选中合计行
  34.             grid.getSelectionModel().addListener('beforerowselect', function (sm, rowIndex, keepExisting, record) {
  35.                 if (Ext.get(grid.getView().getRow(rowIndex)).hasClass('mygrid-row-summary')) {
  36.                     return false;
  37.                 }
  38.                 return true;
  39.             });
  40.         }

  41.         // 页面AJAX回发后执行的函数
  42.         function onAjaxReady() {
  43.             var grid = X(gridClientID);
  44.             calcGridSummary(grid);
  45.         }
  46.     </script>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-3-18 00:52:44 | 只看该作者
防止合计重复加上去了 具体问题具体解决!
怎么实现?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-22 01:28 , Processed in 0.045026 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表