【发布时间】:2017-02-19 05:18:42
【问题描述】:
我创建了一个小提琴来说明我试图实现的目标。
https://fiddle.sencha.com/#fiddle/1i8e
在小提琴上,有两个网格和一个表格。
选择第一个网格的行时,过滤第二个网格(在服务器端,此代码未在小提琴 em>上实现)。
类似:
storeGrid2.load({
params: {
'item': id_item
}
});
当我按下表单 e 中的按钮时,从第二个网格存储(之前过滤)中获取值。
这很好用。
但是,我不需要第二个网格作为我的应用程序中的组件。
过滤后有什么方法可以获取第二个网格存储值(没有网格作为组件)?
总结:我希望当我选择网格 1 的第一行时,过滤 grid2 存储(没有网格作为组件),获取此存储值(这是他的问题)并将字段添加到表单。
编辑:
我知道我的案子不容易曝光。
假设,例如,餐厅的应用程序。
第一个网格显示星期几。第二个网格显示当天可用的食物成分。表格显示菜单。
当用户选择值为 Monday 的第一个网格行时,第二个网格将显示土豆、苹果和鸡肉。表格根据这些食物成分显示菜单:土豆汤、苹果派和炸鸡。
如果是餐厅顾客,当他选择星期一时(在第一个网格上) 只出现菜单,而不是第二个网格(客户不需要知道当天有哪些食物成分,只显示菜单)。
这可以通过隐藏网格来完成。
但是,我试图实现的是是否可以在没有(第二个)网格组件的情况下直接获取数据存储。
在没有视图层(第二个网格)的情况下,一切都发生在 ViewModel/Store 层中。
当我使用 store.load() 而不实例化组件网格时,我收到以下错误:Uncaught TypeError: Cannot read property 'load' of undefined
【问题讨论】:
-
你听说过
Ext.getStore()吗? -
是的。我也试过 Ext.data.StoreManager.get ('my storeId');我要解决的第一个问题是如何在没有网格的情况下加载商店。 storeGrid2.load({ 参数: { 'item': id_item}});显然要运行需要网格组件。我的商店在 viewModel 中。我想直接从商店宽度的网格中获取 de 值
-
好的,所以基本上您想要的是根据您在第一个网格上选择的值过滤第二个存储,而不需要第二个网格来表示该数据,对吗?只需使用连锁店即可 - docs.sencha.com/extjs/6.2.0/classic/Ext.data.ChainedStore.html
-
@GuilhermeLopes 不,那行不通,因为第二个商店有自己的数据(根据第一个网格中的选择从服务器获取)。 ChainedStore 只能处理源存储中的数据。
标签: javascript extjs store extjs5