2010-12-15 171 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'); 
    } 
});