如何在extjs中添加网格页脚中的总行
我想在网格页脚中添加总行。我有一个记录在商店里可用的总行数。在网格中,用户选择降序,总计行显示为第一行。有人能告诉我如何避免这种情况吗 我将解释我的全部问题: 例如,我有一个网格视图,比如Target1和Target2是从webservice获得的如何在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
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