我有两个单独的选项卡(选项卡 A 和选项卡 B)。这两个选项卡共享一个存储,其中每个选项卡都位于各自的索引中。 [0] - A
和 [1] - B
。
我的 Controller 在单击其菜单叶时初始化负载,例如:
oMe.control({
'#role-permission-grid-panel': {
edit: oMe.save,
beforerender: oMe.loadData,
},
'#roles-applicationtype button': {
click: oMe.filterByApplication
}
});
applicationtype 按钮
是发生加载数据的选项卡切换的过滤器。
当 try catch 当前过滤器的值时, Controller 成功显示单击了哪个过滤器。但是,这不再刷新网格面板数据。
SampleGridPanel/view:
console.log('Application',oController.sDefaultToggle);
简单地说,我从 SampleController
更新数据,并尝试通过调用 filterApplication
从我的 SampleGridPanel
捕获数据。由于 initComponent
,我的 SampleGridPanel
仅加载商店一次。我想将更新的数据(在本例中为选定的选项卡)从 Controller 传递到 View 。当我的 View 仅识别初始加载时的数据时,如何通知我的 View 发生了此更改?
我也有点困惑。在我的 Controller 上,当调用 oMe.loadData
beforerender
时,它知道最后一个选项卡式值,但是当我从自定义过滤器调用 oMe.loadData
时函数,它不再重新加载整个商店。它只加载根据过滤器值过滤的信息。
最佳答案
您可以收听activate
和 deactivate
选项卡面板的事件。这些在旧版本的 ExtJS 中也可用。
如果您使用 ExtJS 6,您确实应该考虑使用 ChainedStore
.
- 存储包含数据。
- 网格不绑定(bind)到商店,而是绑定(bind)到每个 ChainedStore。
- ChainedStore 将其源设置为商店,并使用不同的过滤器仅获取应在各自网格中显示的数据。
请注意,从 ExtJS 6.0.1 开始,当将 ChainedStore
与 GroupingFeature
或 CellEditing
组合时,ExtJS 中会出现一些错误。这些应该在 ExtJS 6.0.2 中修复。
关于javascript - 更新 ExtJS 中选项卡开关上的网格面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834425/