【问题标题】:Sencha grid aggregate store entriesSencha 网格聚合存储条目
【发布时间】:2015-06-02 21:42:07
【问题描述】:

假设我有一家商店:

Buyer,Good,ItemCount,ItemPrice
{'Alice','Apple',5,$.25}
{'Bob','Pear',2,$.35}
{'Bob','Banana',5,$.25}
{'Bob','Pear',4,$.35}
{'Eve','Grapefruit',2,$.40}

我有一个网格来显示这家商店的内容,至少有十几个函数散布在各处,改变了这家商店,改变过滤器,从服务器重新加载数据等等。

有没有一种快速的方法来添加另一个网格,该网格在一行中显示每个商品,在一列中显示每个买家,以及每个人总共购买了多少此类商品?每当更新原始网格时,此网格都应更新。

据我所知,这将需要另一个商店,然后我必须附加到 originalStore 的 datachanged 和 filterchanged 事件并每次手动填充新商店?还是有其他解决办法?

编辑:我现在正在查看第一个答案所建议的枢轴网格,我必须稍微扩展我的示例,因为我偶然发现了一个我以前没有看到的问题:

Buyer,Good,ItemCount,ItemPrice
{'Alice','Apple',5,$.25}
{'Bob','Pear',2,$.35}
{'Bob','Banana',5,$.25}
{'Bob','Pear',4,$.35}
{'Eve','Grapefruit',2,$.40}
{{'Alice','Bob'},'Candlelight Dinner Set',1,$45}
{'Eve',{'Ski mask','Baseball bat'},1,$65}
{'Francis',{'Ski mask','Ski poles'},1,$80}

我希望晚餐同时出现在 Alice 和 Bob 那里,并且捆绑销售的产品单独出现。

【问题讨论】:

  • 您的 itemPrice 值不是字符串,因此您必须将它们括在引号中。货币价值不是 JavaScript 中的原生数据类型。

标签: extjs


【解决方案1】:

尝试将PivotGrid 用于您的目的:

var pivot = new Ext.grid.PivotGrid({
    store: yourStore,
    aggregator: 'sum',
    measure: 'ItemCount',
    leftAxis: [
        {
            dataIndex: 'Buyer'
        }
    ],
    topAxis: [
        {
            dataIndex: 'Good'
        }
    ]
});

官方枢轴网格链接:

【讨论】:

  • 为什么 ExtJS 4.2 文档中没有 PivotGrid?难道它不能在 Ext 4.2 中工作?否则,它看起来太好了,我不得不进一步推动我的要求......
  • @Alexander:我在上面添加了一些指向 Aniketos 回复的链接。通过 Sencha 的公告:“Sencha Pivot Grid 与 Ext JS 4.1.x、4.2.x、5.0.x 兼容。计划在第二季度初与 5.1 兼容。”
  • @Mr.Polywhirl Aniketos 引用的 PivotGrid 用于 ExtJS 3,已被废弃。新的 PivotGrid 完全不同。我最终制作了自己的实现来填充网格的商店。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多