这是我想要实现的目标:
让Ext.grid.GridPanel显示来自多个商店的数据。
用“数据库术语”表示,基本上表示对多个商店的内容的“视图”。
与使用单元格渲染器相比,此方法的好处是所有列都是可排序和可搜索的。
为此,必须定义和配置Ext.data.StoreView之类的对象,以从所有涉及的存储中检索并最终转换数据,并将其呈现给GridPanel,就像是单个存储一样。
请注意,即使浏览的商店只有一家,这也可能会派上用场。
例如,考虑一个商店,其中有两个数字字段和一个网格,在各自的列中显示了两个字段,在第三列中显示了这两个字段的总和。
您可以使用单元格渲染器轻松地做到这一点,但是却错过了对该字段进行排序的机会。
您还可以通过在商店中添加一个“ sum”字段并将其放入此处来实现相同目的,但这将意味着复制值以及每次更新时保持该字段值同步的所有麻烦。
现在的问题是:是否有人知道是否存在(甚至勉强)类似的东西,或者我是否必须实施它?
谢谢!
最佳答案
我正在寻找实现类似但又相反的方法:我希望将同一商店附加到2个网格,但是每个网格具有不同的过滤器(在ExtJs 3.x中,过滤是在商店级别完成的,而不是绑定控件)。
但是我希望在一个网格中进行的编辑能够在另一个网格中反映出来(如果一个项目与两个过滤器都匹配),所以我想写一个StoreView类型的类,该类从原始存储中复制所有记录(记录实例是特定于存储的)并进行侦听更改所有者商店中的事件以进行更改,并且还对原始商店进行了任何修改等。
扩展该类将是为了满足您的需要-具有此类可以充当多个商店的视图或代理。
如果我还找不到我,我打算在下周开始写作-如果您想交换笔记/代码,请告诉我...