zoukankan      html  css  js  c++  java
  • [ExtJs]Grid合计(三)


    前言

      今天又有朋友给发邮件询问Grid合计的问题,看的应该是我较早的文章,这里汇总一下并提供第三种合计的方法。

    正文

      一、方法一

        通过修改JsonReader并使用插件GroupSummary,文章:ExtJs Grid 合计 [Ext | GridPanel | GridSummary]

      二、方法二

        先在后台 (C#服务端)统计好,然后添加DataTable(多返回一行数据),然后序列号成JSON返回给客户端,文章:ExtJs 备忘录(7)—— GirdPanl表格(三) [ 统计|查看、修改单行记录 ]


      三、方法三

        3.1  方法说明

          直接在客户端统计,动态的修改Grid(js 操作)。

        3.2  实现代码

    function GridSum(grid)
    {
        
    var sum = 0;
        grid.store.each(
    function(record){
            sum 
    += Number(record.data.money);
        });
        
        
    var n = grid.getStore().getCount();// 获得总行数
        var p = new Ext.data.Record({
            id: 
    '总计:',
            money:sum
        });
        
        grid.store.insert(n, p);
    // 插入到最后一行 
    }

    //加载数据
    store.load({
        callback: 
    function(r,options,success) {
            
    if(!success)
                alert(
    "数据加载失败!");
           GridSum(grid);
        }
    });

          代码说明:

            a).  store为Ext.data.Store,取数据部分代码在这里就省略了;grid是Ext.grid.GridPanel,同上。

            b).  注意GridSum不要写到load方法之后,否则数据还没加载完就动态插入一行,会看见闪一下就没有的现象,一定要注意加载完成后再调用统计的方法。

      四、总结和比较

        4.1  第一种方法很明显是最复杂的,基本可以被淘汰。

        4.2  第二种方法比较不错,擅长于写后台代码的比较喜欢,虽然麻烦点,但是非常灵活,在分页的情况下能统计一页也能统计所以的数据。

        4.3  第三种方法最简单,适合统计一页数据,即务须做分页的表格。

        4.4  注意这三个版本例子的ExtJs版本号可能不一样,第二种应该是最通用的。

    结束

       最好不如最合适来得实际 :)

  • 相关阅读:
    SQL Server 2005 之事务日志体系 (一)
    SQL Server 2005 事务日志之逻辑结构(二)
    SQL Server 2005 清除备份 还原历史记录
    SQL Server 验证器
    SQL Server 2005 事务日志之物理体系(三)
    程序设计语言原理重要概念
    Java作业四 图形用户界面程序设计和多线程
    Java作业二 面向对象程序设计
    Java作业三 语言基础与面向对象
    Java课程学习总结
  • 原文地址:https://www.cnblogs.com/over140/p/1766608.html
Copyright © 2011-2022 走看看