2012-02-24 86 views
0

我创建了Extjs.Panel,现在我想动态加载一个内容到它。所以我写了这个简单的代码Extjs - 不能加载内容到面板

Ext.get('contentPanel').load({ 
        url: '@Url.Action("TempView","Home")' 

        }); 

执行此功能之后,面板被填充TempView,但几秒钟后,我在ExtJS的图书馆得到一个错误

Microsoft JScript runtime error:Unable to get value of the property 'events': object is null or undefined.

编辑 我flollowed @DmitryB意见我使用库的调试版本。这是我发现的。原来,问题出在功能

getElementEventCache 

这是在文件EXT-ALL-debug.js定义的行11108.函数看起来这样

getElementEventCache : function(element) { 
     if (!element) { 
      return {}; 
     } 
     var elementCache = Ext.cache[this.getId(element)]; 
     return elementCache.events || (elementCache.events = {}); 
    }, 

唯一的例外是在甩最后一行,因为elementCache为null。

enter image description here 这里是VisualStudio的

enter image description here

+0

在Chrome中运行此命令可查看完整的堆栈跟踪。还要切换到调试版本的extjs,以更好地理解错误。它可能会或可能不会与您的加载事件相关。 – dbrin 2012-02-25 06:18:56

+0

@DmitryB我编辑了我的问题,并添加了一些更多信息 – John 2012-02-26 13:06:33

+0

不幸的是我以前没有见过这个。这个函数中的“元素”是什么引发异常?你还提到:'异常是以姓氏引发的'。你是什​​么意思?加载事件的内容是什么,你有没有试过脚本:真正的选择? – dbrin 2012-02-26 18:45:21

回答

1

我有一个非常类似的错误将通过添加以下行解决。 (从this forum thread

if(Ext.isIE) { 
    Ext.enableGarbageCollector=false; 
} 
+0

如果你只是在IE中出现这个错误,它看起来像我遇到了同样的错误。堆栈跟踪返回到垃圾回收。 – Robert 2012-04-06 22:21:33

0

堆栈跟踪我使用的波纹管代码和工作凉爽。这可能会帮助你。

试试这个

var content_div = Ext.get(div_id); 
    content_div.load({ 
    url:your_url,params:{id:'abc'},scripts:true,text: 'Loading...'}); 
    content_div.show(); 
+0

不幸的是,这不起作用 – John 2012-02-24 15:07:04

+0

contentPanel是任何HTML标记ID或Extjs组件ID。如果是Extjs组件,则使用Ext.getCmp('contentPanel')访问; – siva565 2012-02-24 15:19:56