2010-12-15 6 views
0

У меня возникли трудности с рендерингом моей сетки EXTJS, которая едет поверх приложения django. Сетка отображается только некоторое время. Когда сетка должна отображаться, она работает. Когда сетка не должна отображаться, я получаю ошибку «ct не определена» от extjs-core. Я исследовал эту ошибку, и, похоже, это происходит, когда мой <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 - HTML-файл сетки, которая визуализируется внутри ExtJS TabPanel.

<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'); 
    } 
}); 
Смежные вопросы