Javascript Ext.net选项卡面板问题

Javascript Ext.net选项卡面板问题,javascript,extjs,ext.net,Javascript,Extjs,Ext.net,我遇到Ext.net选项卡面板问题。重建应用程序后首次打开带有选项卡面板的页面时,会抛出未捕获的类型错误:对象[Object Object]没有方法“getComponent”。每次重建应用程序时都会出现此问题,然后在页面刷新后消失。下面是我用来创建选项卡的JS代码: @X.XScript().ScriptBlock(@" <script> var addMainTab = function (tabPanel, id, url, title) { var

我遇到Ext.net选项卡面板问题。重建应用程序后首次打开带有选项卡面板的页面时,会抛出未捕获的类型错误:对象[Object Object]没有方法“getComponent”。每次重建应用程序时都会出现此问题,然后在页面刷新后消失。下面是我用来创建选项卡的JS代码:

@X.XScript().ScriptBlock(@"
<script>
    var addMainTab = function (tabPanel, id, url, title) {

        var tab = tabPanel.getComponent(id);

        if (!tab) {
            tab = tabPanel.add({ 
                id       : id, 
                title    : title, 
                closable : true,
                loader   : {
                    url      : url,
                    renderer : 'frame',
                    loadMask : {
                        showMask : true,
                        msg      : 'Loading ' + url + '...'
                    }
                }
            });
        }

        tabPanel.setActiveTab(tab);
    }
</script>
");

正如我所发现的,在重建后第一次加载页面时,一些函数(getComponent、addTab和其他函数)没有包含在TabPanel的定义中。有人知道它为什么会发生,以及如何修复吗?非常感谢您的帮助。

在执行此代码之前是否加载了ExtJS框架文件?

请看一看,我提到了如何将选项卡面板添加到主页。

在Razor代码中不要使用#{control}名称。在此处使用App.controlname引用相关对象#{control}仅在webforms中使用。

是的,在第一次加载时,文件已加载,但TabPanel对象中缺少函数。页面刷新修复了这个问题。但是在下一次重建之后,它再次发生。谢谢分享。但我的问题在这一行:var tab=tabPanel.getComponent(id);getComponent函数在第一次加载页面时丢失。请更正。但在某个时候(我不记得确切的版本),我们添加了一个更改,将#{controlID}转换为Razor下的“App.controlID”。尽管如此,在剃须刀下使用仍然没有那么大的意义。
menuItem.Listeners.Click.Handler = "addMainTab(#{MainTabPanel}, 'someId', 'someurl', 'Tab title')";