Ext.net TabPanel问题
我遇到了Ext.net TabPanel的问题。当应用程序重建后第一次打开带有选项卡面板的页面时,会抛出Uncaught TypeError: Object [object Object] has no method 'getComponent'
。每次应用程序重建时都会出现问题,然后在刷新页面后消失。这里的JS代码,我用它来创建一个标签:Ext.net TabPanel问题
@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在重新编译后首次加载页面。有谁知道它为什么会发生以及如何修复?我会很感激任何帮助。
请勿在剃刀代码中使用#{控制}名称。使用App.ControlNameHere来引用有问题的对象。 #{control}仅用于webforms。
ExtJS框架文件在代码执行之前是否被加载?
是的,文件被加载,但在第一次加载时TabPanel对象中缺少函数。页面刷新修复了这个问题。但在下一次重建之后,它会再次发生。 – Alexander
看看this question,我提到我如何将标签面板添加到主页面。
感谢分享。但我的问题是在这一行: var tab = tabPanel.getComponent(id); getComponent函数在页面的第一次加载时只是丢失。 – Alexander
正确。但是在某些时候(我不记得确切的版本),我们添加了一个将#{controlID}转换为Razor下的“App.ControlID”的更改。尽管如此,在Razor下使用依然没有意义。 –