从多个Ext.data.Store对象创建一种“Ext.data.StoreView”

时间:2010-10-21 13:16:50

标签: javascript extjs view store

以下是我想要实现的目标:

有一个Ext.grid.GridPanel显示来自多个商店的数据。 放入“数据库术语”,基本上显示了多个商店内容的“视图”。 与使用单元格渲染器相反,此方法的好处是所有列都可以排序和搜索。

为此,必须定义和配置像Ext.data.StoreView这样的对象,以检索并最终转换来自所有相关商店的数据,并将其呈现给GridPanel,就好像它是单个商店一样。

请注意,即使查看的商店只是一个,这也可能会派上用场。 例如,考虑具有两个数字字段的商店和一个在各自列中显示两个字段的网格,以及显示这两个字段之和的第三列。 您可以使用单元格渲染器轻松完成此操作,但您错过了对该字段进行排序的机会。 您也可以通过向商店添加“sum”字段并将总和放在那里来实现相同目的,但这意味着复制值以及在每次更新时保持该字段值同步的所有麻烦。

现在的问题是:有人知道是否存在任何(甚至几乎没有)类似的东西,或者我是否必须实施它?

谢谢!

1 个答案:

答案 0 :(得分:1)

我希望实现类似的东西,但反过来说:我希望同一个商店附加到2个网格,但每个网格使用不同的过滤器(在ExtJs 3.x中,过滤在商店级别完成,而不是约束控制)。

但我希望在一个网格中进行的编辑反映在另一个网格中(如果一个项目与两个过滤器匹配),那么我想写一个StoreView类型类,它复制了原始商店中的所有记录(记录实例是特定于商店的) )并监听所有者商店上的事件以进行更改,并将任何编辑等应用于原始商店。

这样做的扩展就是满足您的需求 - 让这样的类能够充当多个商店的视图或代理。

如果我已经找不到一个,我打算下周开始写这个 - 如果你想交换笔记/代码让我知道......