FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 40024|回复: 22
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-20 08:10:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
<script type="text/javascript" language="javascript">
               var gridClientID = '<%= grid.ClientID %>';
           //浮点加法
           function accAdd(arg1, arg2) {
               var r1, r2, m;
               try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
               try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
               m = Math.pow(10, Math.max(r1, r2))
               return (arg1 * m + arg2 * m) / m
           }
           //合计函数Begin  
           function GridSum(grid) {
               var sum1 = 0;
               var sum2 = 0;
               var sum3 = 0;
               var sum4 = 0;
               var sum5 = 0;
               var sum6 = 0;
               //...有几个列需要合计就声明几个变量
               grid.store.each(function(record) {              //函数grid.store.each(record))相当于一个for循环,遍历整个record
                   sum1 = accAdd(record.data["test1"], sum1); //把test1列下面的所有值进行加和运算,注意点:test1是该列ColumnID属性 例:<ext:BoundField Width="70px" DataField="XXXXX" HeaderText="测试"  TextAlign="Center" ColumnID="test1" />
                   sum2 = accAdd(record.data["test2"], sum2); //把test2列下面的所有值进行加和运算
                   sum3 = accAdd(record.data["test3"], sum3);
                   sum4 = accAdd(record.data["test4"], sum4);
                   sum5 = accAdd(record.data["test5"], sum5);
                   sum6 = accAdd(record.data["test6"], sum6);
               });
               //sum1 = addComma(sum1);
               var p = new Ext.data.Record(
                 {
                     "OrderDateField": '合计',
                     "test1": sum1,  //把test1列与合计后得到的值对应起来
                     "test2": sum2,   //把test2列与合计后得到的值对应起来
                     "test3": sum3,
                     "test4": sum4,
                     "test5": sum5,
                     "test6": sum6
                 }
               );
               //grid.store.insert(0, p); // 插入到当前页的第一行
               grid.store.insert(grid.getStore().getCount(), p);  //插入到当前页的最后一行,函数 grid.getStore().getCount()用来获得当前页的记录行数
              //具体放哪一行 自己选择


               //改变改行颜色。。。。。。。。x-grid-cell-inner为CSS样式 大家自己写就行了
               var row = grid.getView().getRow(grid.getStore().getCount() - 1);
               Ext.get(row).first().addClass("x-grid-cell-inner");
           }
           //合计函数End


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

           // 页面AJAX回发后执行的函数
           function onAjaxReady() {
               var grid = X(gridClientID);
               GridSum(grid);

           }
       </script>


在分页时,或者绑定行有触发OnRowCommand时。都会触发onAjaxReady这个JS 大家自己做个变量来控制把 防止合计重复加上去了 具体问题具体解决!
推荐
发表于 2013-6-4 18:19:34 | 只看该作者
{:soso_e179:}
23#
发表于 2019-12-7 14:30:56 | 只看该作者
官网上的表格合计行,改成平均数,需要注意哪些问题
22#
发表于 2014-4-1 13:49:27 | 只看该作者
好,,,                  
21#
发表于 2013-9-13 19:10:37 | 只看该作者
确实好用,但在XP里grid里数据没了,但汇总结果显示有。而且其他不使用汇总的页面却正常显示。
20#
发表于 2013-7-1 10:08:56 | 只看该作者
知道是怎么回事了,成功了
function onAjaxReady() {
            var grid = X(gridClientID);
            highlightRows();
            calcGridSummary(grid);
        }
19#
发表于 2013-7-1 09:23:28 | 只看该作者
为什么我的合计行把最下面一行占用了?
如果只有一条记录,则不显示记录,仅显示合计
如果两条记录,这只显示一条记录加合计行
18#
发表于 2013-6-27 21:31:55 | 只看该作者
感谢sanshi,就是美化一些就好了,底色什么的调整一下,有列分隔线就完美了
17#
发表于 2013-6-11 15:23:40 | 只看该作者

顶,JS还是不行,只能拿现成的用了
16#
发表于 2013-6-11 09:42:06 | 只看该作者
支持下,准备拿现成的使用。
15#
发表于 2013-6-8 10:23:53 | 只看该作者
顶,JS还是不行,只能拿现成的用了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 04:36 , Processed in 0.051666 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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