C# 选项卡上的侦听器单击或激活未正常工作/extjs4

C# 选项卡上的侦听器单击或激活未正常工作/extjs4,c#,tabs,refresh,listener,extjs4,C#,Tabs,Refresh,Listener,Extjs4,我正在用extjs4和c开发一个应用程序,它基于。 我在左边有一个菜单,你可以点击菜单上的每一项。右边是我所有的标签 我在选项卡上使用的事件侦听器在我单击选项卡时工作,但在我第一次从左侧菜单单击它后就不工作了 更清楚地说,当我第一次加载我的应用程序时,我必须从左菜单中选择一个项目,然后它会显示我的选项卡,其中tab1处于激活状态。一切都很好,只是当我选择另一个项目然后返回到我的选项卡时,它不起作用 这是我的听众: listeners: { activate: function () {

我正在用extjs4和c开发一个应用程序,它基于。 我在左边有一个菜单,你可以点击菜单上的每一项。右边是我所有的标签

我在选项卡上使用的事件侦听器在我单击选项卡时工作,但在我第一次从左侧菜单单击它后就不工作了

更清楚地说,当我第一次加载我的应用程序时,我必须从左菜单中选择一个项目,然后它会显示我的选项卡,其中tab1处于激活状态。一切都很好,只是当我选择另一个项目然后返回到我的选项卡时,它不起作用

这是我的听众:

  listeners: { activate: function () {                                  
                               alert('tab1');                                  
                          }
             },
以下是单击菜单时调用的代码:

menuPanel.getSelectionModel().on('select', function (selModel, record) {
    if (record.get('leaf')) {
        Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel');
        Ext.getCmp('cardTabs').setActiveTab(0);
}}
提前谢谢

最好使用beforetabchange而不是activate listener。请尝试以下方法:

listeners : {
beforetabchange : function(tab, newTab, currentTab){
if(newTab != null){
if(newTab.getId()=='tab1'){
alert('tab1');
}
}
}
}
如上所述,您可以为希望执行的每个选项卡编写侦听器。

最好使用beforetabchange而不是activate listener。请尝试以下方法:

listeners : {
beforetabchange : function(tab, newTab, currentTab){
if(newTab != null){
if(newTab.getId()=='tab1'){
alert('tab1');
}
}
}
}

如上所述,您可以为希望执行的每个选项卡编写侦听器。

检查以下url后:


检查以下url后:

解决

我在选项卡面板中添加了一个侦听器

 listeners: { tabchange: function () {
                    //refresh 
                    switch (this.getActiveTab().id) {
                        case 'myId1': myFunction();
                        .........
                        }
                },
解决

我在选项卡面板中添加了一个侦听器

 listeners: { tabchange: function () {
                    //refresh 
                    switch (this.getActiveTab().id) {
                        case 'myId1': myFunction();
                        .........
                        }
                },

它不起作用:我在任何地方都不会收到任何警报消息,即使我在没有if条件的情况下尝试过,即使使用tabpanel id或tab id!它不起作用:我在任何地方都不会收到任何警报消息,即使我在没有if条件的情况下尝试过,即使使用tabpanel id或tab id!好的,谢谢,它现在起作用了,但是和激活一样,当我点击左边的菜单时,我仍然没有得到警告,而不是在标签上:你知道吗?唯一修改的代码是调用菜单点击,我已经在我的问题中分享过了。js for。如果你还需要什么,请告诉我。我不知道还有什么办法可以分享我的代码好的,谢谢它现在起作用了,但是和激活一样,当我点击左边的菜单时,我仍然没有收到警告,而不是在标签上:你知道吗?这是唯一修改过的代码是调用菜单点击我在我的问题中已经分享过了。js for。如果你还需要什么,请告诉我。我不知道如何才能共享我的代码