我很难渲染我的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时才渲染网格?
答案 0 :(得分:0)
如果您只是想避免该错误,请尝试检查“my-grid”的存在,
Ext.onReady(function() {
if( (Ext.get('my-grid')) !== null)
{
grid.render('my-grid');
}
});