EXTJS рендеринг сетки - PullRequest
       0

EXTJS рендеринг сетки

0 голосов
/ 15 декабря 2010

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

1 Ответ

0 голосов
/ 15 декабря 2010

Если вы просто пытаетесь избежать этой ошибки, попробуйте проверить наличие 'my-grid',

Ext.onReady(function() {
    if( (Ext.get('my-grid')) !== null)
    {
        grid.render('my-grid');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...