EXTJS网格渲染

时间:2010-12-15 04:58:20

标签: django extjs

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

这些是我的文件。

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时才渲染网格?

1 个答案:

答案 0 :(得分:0)

如果您只是想避免该错误,请尝试检查“my-grid”的存在,

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