假设在单页上有两个网格,它们具有相同的列,但显示的记录不同。
可能有两种解决方案:
在渲染网格之前,在商店中使用相同的模型并存储和过滤。 此解决方案中的潜在问题:由于底层存储是相同的,因此第二个网格将是 在第一个网格上渲染过滤器将被删除。
使用不同的商店定义和模型定义(保持代理和字段与其他商店/模型定义相同,但只是更改名称): 问题:我在Pandora应用程序上尝试了这个,它开始给出奇怪的问题,这样第二个网格没有显示任何记录。
哪种方法更好,如何解决相应的问题。
-Thanks
答案 0 :(得分:1)
我们在项目中遇到了完全相同的问题。我最终使用了以下方法:
如果您需要,我可以发布一些示例代码进行克隆。
更新
以下是克隆商店对象的代码示例:
cloneStore: function(store, storeClass) {
var new_st = Ext.create(storeClass),
recs = [],
filter;
store.each(function(r) {
recs.push(r.copy)}
);
new_st.add(recs);
return new_st;
},
答案 1 :(得分:0)
我采取并建议的方法不是引用商店的相同实例,而是为每个网格创建商店的新实例:
store:Ext.create('MyStore',{...});