Ext.net TabPanel问题

时间:2014-02-21 08:01:05

标签: javascript extjs ext.net

我遇到Ext.net TabPanel的问题。在重建应用程序后第一次打开带有选项卡面板的页面时,它会抛出Uncaught TypeError: Object [object Object] has no method '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>
");

在菜单项上点击:

menuItem.Listeners.Click.Handler = "addMainTab(#{MainTabPanel}, 'someId', 'someurl', 'Tab title')";

正如我发现在重建后第一次加载页面时,某些函数(getComponent,addTab等)未包含在TabPanel的定义中。有没有人知道它为什么会发生以及如何修复它?我很感激任何帮助。

3 个答案:

答案 0 :(得分:1)

不要在Razor代码中使用#{control}名称。使用App.ControlNameHere引用相关对象。 #{control}仅用于网络表单。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

看看this question,我提到了如何将标签面板添加到主页面。