【发布时间】:2014-07-26 12:35:45
【问题描述】:
如何为具有相同列结构的多个网格使用相同的存储(具有不同的过滤器)?
我使用了 store.filter() 方法并将过滤后的存储传递给网格,但由于只有过滤存储的引用被传递,所有网格都显示相同的数据。
尝试了 Ext.clone() 没有运气
【问题讨论】:
标签: extjs clone store extjs4.2
如何为具有相同列结构的多个网格使用相同的存储(具有不同的过滤器)?
我使用了 store.filter() 方法并将过滤后的存储传递给网格,但由于只有过滤存储的引用被传递,所有网格都显示相同的数据。
尝试了 Ext.clone() 没有运气
【问题讨论】:
标签: extjs clone store extjs4.2
最好的方法是在网格initComponent override 中创建同一商店类的单独实例 - 然后不需要克隆。
你可以看到这个方法here
【讨论】:
maingridview的initComponent中创建了CompanyStore的实例。 initComponent 在网格实例化时运行,因此此时也会实例化存储。您将在使用此商店的所有视图中执行相同操作。
这是框架在 ExtJs 4.x 中确实没有解决的问题之一,但他们在 ExtJs 5 中对它有特定的支持。如果可能,您可能需要考虑升级。
如果没有,你可以通过ajax向服务器请求数据,然后使用json结果将数据填充到所有商店。使用这种方法,您可以使用相同的数据来处理多个商店,而只需一个服务器请求。
【讨论】: