在ExtJS中的Tab切换上更新网格面板

时间:2016-04-25 07:31:08

标签: javascript extjs tabs

我有两个单独的标签(标签A和标签B)。这两个标签共享一个商店,其中每个商店都在各自的索引中。 [0] - A[1] - B

我的控制器在点击菜单页面时初始化负载,例如:

oMe.control({
  '#role-permission-grid-panel': {

    edit: oMe.save,

    beforerender: oMe.loadData,

  },
  '#roles-applicationtype button': {
    click: oMe.filterByApplication
  }
});

applicationtype button是加载数据的标签切换发生的过滤器。

当尝试捕获当前过滤器的值时,控制器成功显示单击了哪个过滤器。但是,这不再刷新网格面板数据。

SampleGridPanel / view

console.log('Application',oController.sDefaultToggle);

简而言之,我更新了SampleController中的数据,并尝试通过调用SampleGridPanel从我的filterApplication抓取数据。由于SampleGridPanel,我的initComponent仅加载商店一次。我想将更新的数据(在本例中为选定的标签)从controller传递到view。如何在仅识别初始加载数据时发生此更改通知我的观点?

我也有点困惑。在我的控制器上,当调用oMe.loadData beforerender时,它知道最后一个标签值,但是当我从自定义过滤器函数调用oMe.loadData时,它不再重新加载整个商店。它仅根据过滤器值加载过滤后的信息。

1 个答案:

答案 0 :(得分:1)

您可以收听标签面板的activatedeactivate事件。这些也可以在旧版本的ExtJS中使用。

如果您使用的是ExtJS 6,则应该考虑使用ChainedStore

  • 商店包含数据。
  • 网格未绑定到商店,而是绑定到每个ChainedStore。
  • ChainedStores将其源设置为商店,并使用不同的过滤器仅获取应在各自网格中显示的数据。

请注意,自ExtJS 6.0.1起,ExtJS中存​​在将ChainedStoreGroupingFeatureCellEditing合并时出现的错误。这些应该在ExtJS 6.0.2中修复。