Tabs ExtJs 4-如果不存在,则添加新选项卡,并在网格上列出数据

Tabs ExtJs 4-如果不存在,则添加新选项卡,并在网格上列出数据,tabs,grid,extjs4,Tabs,Grid,Extjs4,我使用ExtJS4,里面有一个选项卡面板和选项卡。我已成功添加了新选项卡,并阻止添加已打开的相同选项卡。无论如何,数据在第一次打开后列出,但在重新打开后无法列出。我认为ExtJS4在datagrid上列出数据时存在问题。你能给我一个关于这个问题的建议和样品吗?提前感谢…根据您的问题,您的选项卡面板中似乎有一个网格面板: 无论如何,数据在第一次打开后列出,但无法列出 重新开放后。我认为Ext Js 4与 在datagrid上列出数据 第一次打开选项卡时,gridpanel中有数据,然后关闭并重新打

我使用ExtJS4,里面有一个选项卡面板和选项卡。我已成功添加了新选项卡,并阻止添加已打开的相同选项卡。无论如何,数据在第一次打开后列出,但在重新打开后无法列出。我认为ExtJS4在datagrid上列出数据时存在问题。你能给我一个关于这个问题的建议和样品吗?提前感谢…

根据您的问题,您的
选项卡面板中似乎有一个
网格面板

无论如何,数据在第一次打开后列出,但无法列出 重新开放后。我认为Ext Js 4与 在datagrid上列出数据

第一次打开选项卡时,
gridpanel
中有数据,然后关闭并重新打开时,没有数据。如果我做错了,请纠正我

如果要为
gridpanel
创建
datastore
,而不是创建
gridpanel
的代码,这将是正常的ExtJS行为

当您关闭
gridpanel
选项卡(销毁它)时,它还将销毁为其保存数据的存储

有几种解决方案,您可以为您的商店提供一个
storeId
配置,该配置将在
StoreManager
中注册它,并在组件销毁时防止它被销毁。使用此方法,您还可以将
gridpanel
配置为如下存储:

// other grid configs...
store: Ext.StoreManager.lookup('yourStoreId'),
// other grid configs...
创建新的
gridpanel
选项卡时,该方法不会重新加载存储数据。如果在创建新选项卡时确实希望存储加载新数据,则只需使用创建
gridpanel
选项卡的相同代码包含存储创建代码-
Ext.create(Ext.data.store,{//etc..
(或以其他方式)即可

使用第二种方法,您的
gridpanel
在关闭时将继续销毁其
数据存储
,就像现在一样,但您将在创建新选项卡时重新创建并重新加载存储,因此不会出现问题

我认为在某个地方还有一个配置,允许您指定是否希望
gridpanel
在销毁存储时销毁存储


然而,我通常使用第一种方法,然后在我真的不再需要时手动销毁存储。或者在我需要时手动重新加载数据。这有助于减少服务器上不必要的Ajax请求。

尽管@Geronimo在这里可能很好地走上正轨,但看到一些代码,特别是显示h的部分,确实会有所帮助如何创建存储和选项卡。也可能是您使用的是配置,而不是InitComponent(),但是如果没有看到一些代码就无法判断。另外,您使用的是4.07还是4.1?感谢您的解释。您是对的,但我认为每次在tabpanel中打开tab时,我们都应该连接数据库并选择记录,因为记录可能会经常更改。我认为问题与getUpdater()有关Ext.tab.Panel的方法。我们以前使用过该方法,但到ExtJs4发布时,我不知道哪个方法执行它的工作。请举例说明为了将这些代码转换为ExtJs4.1需要做哪些更改?提前感谢…var updater=tab.getUpdater();updater.on('beforeupdate',function(x,y,z){/**/});updater.on('update',function(x,y){/**});updater.update(menu.targetUrl);tab.setTitle('anytitle');我必须在这个问题上使用@Izhaki,你能编辑你的问题并在其中发布你用来创建选项卡的代码吗?