Ext JS 4 - 共享同一存储的网格实例
Posted
技术标签:
【中文标题】Ext JS 4 - 共享同一存储的网格实例【英文标题】:Ext JS 4 - Grid instances sharing the same store 【发布时间】:2012-08-20 07:05:48 【问题描述】:我遇到了一个让我发疯的问题。我创建了一个显示网格的基于窗口的小部件。好的,到目前为止,这没什么特别的,但是,每个网格都必须处理不同的数据。例如:想象一个家庭经纪人,有一个显示股票报价的小部件。因此,实例 A 必须显示 INTC,实例 B 必须显示 CSCO,实例 C 必须显示 FB。但是当我处理实例 A 的 INTC 数据时,实例 B 和 C 的网格也会更新。所以我知道所有网格共享同一个商店。 我已经尝试过动态创建商店,但是没有成功。
问题是,我该怎么做才能分开呢?还有另一种方法来更新没有存储的网格吗?
【问题讨论】:
此信息有帮助吗? ***.com/a/12013880/531940 也许发布一些关于如何定义网格和存储的代码,以及您使用的是哪个版本的 ExtJS? 【参考方案1】:您需要创建商店的一个实例,您可能这样声明它们:
xtype: 'grid',
store: 'theStore'
// Rest of the properties
你需要做的是:
xtype: 'grid',
//column definitions etc...
initComponent: function()
var me = this;
var lStore = Ext.create('App.store.MyStore');
Ext.apply(me,
store: lStore
);
me.callParent();
这将创建一个唯一的商店实例,如果您像这样引用商店: store: 'MyStore' 您将获得相同的商店,并且当您排序、分页、过滤......所有商店都做同样的事情.
希望这对您有所帮助,因为您没有共享任何代码。
【讨论】:
伙计,感谢您的努力,但仍然无法正常工作。我尝试过您发布的这种方式,并且我一直在尝试尽可能多的修改。即使我创建了一个商店的新实例,结果仍然相同:如果我添加或删除某个项目,所有其他网格都会反映这一点。 确保您没有提供 storeId,并尝试使用 bindStore 方法而不是仅执行 Ext.apply。 那你应该分享一些代码,否则我们帮不了你。以上是关于Ext JS 4 - 共享同一存储的网格实例的主要内容,如果未能解决你的问题,请参考以下文章