如何在extjs中添加网格页脚中的总行

如何在extjs中添加网格页脚中的总行,extjs,extjs4.1,sencha-architect,Extjs,Extjs4.1,Sencha Architect,我想在网格页脚中添加总行。我有一个记录在商店里可用的总行数。在网格中,用户选择降序,总计行显示为第一行。有人能告诉我如何避免这种情况吗 我将解释我的全部问题: 例如,我有一个网格视图,比如Target1和Target2是从webservice获得的 Month Target Target1 Target2 Target(2-1) Target% jan 500 1000 1001 1 0.99 feb 600

我想在网格页脚中添加总行。我有一个记录在商店里可用的总行数。在网格中,用户选择降序,总计行显示为第一行。有人能告诉我如何避免这种情况吗

我将解释我的全部问题:

例如,我有一个网格视图,比如Target1和Target2是从webservice获得的

 Month Target  Target1  Target2   Target(2-1)  Target%
  jan    500     1000    1001        1           0.99
  feb    600     2000    2001        1           0.99

  **total  1100     3000    3002        2          2*3002/100** need to calculate total% like this   
我正在计算目标值(2-1)目标值%存储中的总值,并将存储绑定到网格中。因此,只有total列也会发生变化。在网格中,用户选择降序,总行数也会更改。有人能告诉我如何避免这种情况吗


谢谢

您应该使用网格摘要功能,而不是常规行。是一个演示示例用法的提琴,以及实现目标%total计算的自定义summaryType函数

这是一种比在存储中作为记录进行汇总计算更好的方法,您不会在排序和筛选方面遇到麻烦

看看文档和实例。基本上,您需要将该功能添加到网格中,如:

Ext.create('Ext.grid.Panel', {
    ...
    features: [{
        ftype: 'summary'
    }],
    ...
并将summaryType配置添加到所需的列中,如:

columns: [{
    dataIndex: 'name',
    text: 'Name',
    summaryType: 'sum',
...
这就是自定义summaryType的外观:

dataIndex: 'targetPercent',
text: 'Target%',
summaryType: function(records){
    var totals = records.reduce(function(sums, record){
        return [sums[0] + record.data.target2, 
                sums[1] + record.data.targetDiff];
    }, [0,0]);

    return (totals[0] * totals[1]) / 100;
} 

感谢回复,所有值都来自存储am,将字段分配到列{text:'name',dataIndex:'name',flex:1},就像我对总计行所做的那样。在总计行中,我对每一列进行了不同的计算。摘要功能允许根据您使用的摘要类型对每一列进行不同的计算,如果你需要的话,还有更复杂的计算。如果你发布一个JSFIDLE,我将向你展示你是否理解我的问题是的,我仍然认为最好的解决方法是使用summary功能,我现在没有时间向你展示如何编写自定义summaryType的示例,希望我今天晚些时候再谈。谢谢你的帮助,阿米特。这非常有用,因为还有一个疑问,他们正在静态设置数据。我正在设置target、target1、target2的值,使用columns属性{text:'target',dataIndex:'target',flex:1}填充网格,vale来自column config