ExtJS 4 在商店中按一列分组,总计另一列

ExtJS 4 group by one column in store, total another

本文关键字:一列 ExtJS      更新时间:2023-09-26

我有一个代表银行存款的数据存储。 数据如下所示:

{ account : 'a', amount : 5 },
{ account : 'a', amount : 15 },
{ account : 'b', amount : 7 },
{ account : 'b', amount : 3 },
{ account : 'c', amount : 12 },

我想在按帐户和总金额分组的网格中显示此数据。我不想显示原始数据。只是分组的数据。

Account    Total Amount
a           20
b           10
c           12

如果这是一个 sql 数据库,则查询将遵循以下行:

选择帐户,总和(金额)从TBL组中按帐户;

这在 extJS 中是否可能而无需手动操作?我似乎无法让它工作。

我已经在我的商店中调用了此方法:

store.group('account');

我的网格面板中应该显示总计的列如下所示:

{
  :text => 'Total Amount',
  :dataIndex => 'amount',
  :summaryType => 'sum',
},

我知道该组正在做某事,因为我可以将顺序从 ASC 更改为 DESC,并且网格以不同的方式显示它。但是现在,网格仅显示所有行,没有分组。

感谢您的帮助。

怕Ext JS不支持完全按照您想要的方式显示数据。

您可以使用Ext.grid.feature.GroupingSummary功能

  • 文档:http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.feature.GroupingSummary

或者,您可以通过以下方式从分组存储中获取分组数据

store.getGroups()

并手动处理它们。

  • 文档: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.Store-method-getGroups