2010-12-15 124 views
0

我很难渲染我骑在Django应用程序之上的EXTJS网格。网格仅在部分时间显示。当网格应该被显示时,它可以工作。当网格不应该显示时,我会从extjs-core得到“ct is not defined”错误。我研究了这个错误,当我的<div id="my-grid">未定义时,它似乎就会发生。 div是在grid.html中定义的,它只在一些时间加载。EXTJS网格渲染

这些是我的文件。

view_main.js - 我在Ext.onReady里面定义了所有的对象。

Ext.onReady(function(){ 
var grid = new Ext.grid.GridPanel({ 
    border: false, 
    //... 
} 
grid.render('my-grid') // comment this out and "ct is not defined" goes away 
// but the grid never renders in grid.html 

base.html - 我的模板扩展的基础django文件。这个文件也加载我的view_main.js文件。

<!-- Load Script --> 
<script type="text/javascript" src="/site_media/js/view_main.js" ></script> 

grid.html - 在EXTJS TabPanel中呈现的网格html文件。

<div id="my-grid" style="border: height: 800px; width: 800px;"></div> 

我甚至不想尝试渲染我的网格,除非显示grid.html。但电网不工作,除非我把grid.render view_main.js

内如果我尝试把渲染脚本grid.html的我得到“网格没有定义的错误”

<script type="text/javascript" > 
Ext.onReady(function(){ 
    grid.render('my-grid'); 
} 
</script> 

如何才能在grid.html加载时渲染网格?

回答

0

如果你只是想避免这种错误,请尝试检查的“我的网”的存在,

Ext.onReady(function() { 
    if((Ext.get('my-grid')) !== null) 
    { 
     grid.render('my-grid'); 
    } 
});