Extjs 将另一个商店作为另一个属性绑定到网格

Posted

技术标签:

【中文标题】Extjs 将另一个商店作为另一个属性绑定到网格【英文标题】:Extjs binding another store to grid as another property 【发布时间】:2020-06-22 07:17:16 【问题描述】:

我有一个带有商店的网格。在 ViewModel 中,我在 stores 属性中创建了商店。在网格中,我将 bind 属性放入该商店。这很好用。 我想将另一家商店附加为一个名为 fullStore 的属性。我应该遵循哪些步骤?它应该在 data 属性下还是在 stores 属性下?我应该扩展网格组件以将 fullStore 添加为配置吗?

我创建了一个fiddle。我想在 getOptionsFromStore() 函数(填充列表列)中使用 fullStore 而不是使用网格存储。那是因为网格存储是分页的。

注意:我使用的是 6.5.2 版本

【问题讨论】:

【参考方案1】:

我认为您可以在同一视图模型中定义第二个商店的配置并使用视图模型本身 fiddle 绑定它(为您创建示例以节省时间)。如果您的第二个存储具有相同的型号并且您不需要显示附加信息,则无需更改组件(旧的扩展)

编辑:

哦,您继续使用 grid.filter 进行实验。做你需要的最简单的方法是为过滤器本身定义存储。但是在这种情况下,过滤器存储逻辑的过滤将停止工作fiddle。顺便说一句,grid.filter 不能绑定 store(或其他东西),因为它们不是从 Ext.Component 扩展的,因此没有 Ext.mixin.Bindable

【讨论】:

我认为我没有很好地解释自己。我用小提琴更新了我的问题。请检查一下。提前致谢。 除了@pvlt 的回答,如果您的模型不同并且您想使用不同的商店、模型和列填充相同的网格,您可以使用grid.reconfigure 方法 @pvlt 我想将一个新商店作为一个名为 fullStore 的属性附加到网格中,然后,当我在 getOptionsFromStore() 中时函数,我想使用该商店:getOptionsFromStore: function (store) store = this.grid.fullStore; 我想这样做是因为我不想建立多个商店(每列一个),我希望 ExtJS 执行创建过滤器的过程。然后我捕获 filterchange 事件来过滤 fullStore 商店。

以上是关于Extjs 将另一个商店作为另一个属性绑定到网格的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs 编辑器网格面板的问题

extjs 5 商店同步绑定到选择 hasMany

如何将 extjs 网格限制为仅显示 100 行并提供所有行作为下载?

ExtJS 2.3/3.x 网格存储

EXTJS 5.0:无限网格滚动不适用于商店中的 extraParams

ExtJS:过滤网格面板,但不是商店?