странная проблема рендеринга jQuery dataTables - PullRequest
0 голосов
/ 29 октября 2010

Я работаю над веб-приложением, которое использует меню (fg.menu) и вкладки пользовательского интерфейса jQuery.Это прекрасно работает.Сейчас я пытаюсь применить плагин dataTables к таблицам, которые я загружаю (через Ajax) в мои вкладки.Таблицы создаются на стороне сервера (JSON сейчас не поддерживается) и хранятся в статических файлах, которые я загружаю во вкладки.Таблицы имеют развернутые ссылки на другие таблицы.Они загружаются в текущую вкладку через эту обработку событий в параметрах моей вкладки:

load: function(event, ui) 
{
  //alert ("load is called");

  $('a', ui.panel).live('click', function() 
  {      
      // now load the href into the tab
      $(ui.panel).load(this.href);
      // alert ("live click is called");

      // Set up the dataTable
      oTable = $('.my_table').dataTable( 
      { 
         "sScrollX": "100%",
         "bPaginate": false,
         "bJQueryUI": true,
         "bInfo": false,
         "bDestroy": true,
         "bRetrieve": true,
         "sDom": '<"H"r>t'
       } );

  return false;
  });

}  // end of load:

Я также инициализирую dataTables через загрузчик ссылок меню (имеет другое событие), который работает нормально, как и любой начальныйвыберите вкладку рендеринга.

Когда я нажимаю на ссылки в таблице, вложенная таблица отображается на вкладке, но таблица данных не вступает в силу.Я заметил, что когда я нажимаю на новую вкладку, таблица будет кратко мигать рендерингом dataTable перед загрузкой новой вкладки.Итак, я добавил предупреждение (закомментированное в приведенном выше коде), чтобы посмотреть, как запускаются события, и вот, dataTables начали правильно отображаться.Когда я удаляю предупреждение, оно возвращается к простой таблице.

Я пытался переместить init dataTable везде, где только мог придумать, явно вызывать fnDraw () в разных местах и ​​везде реплицировать init DataTable, но, кажется, ничто не заставляет его рендериться, кроме предупреждения.

Я использую dataTables 1.7.3, jQuery 1.4.2 и jQuery UI 1.8.5 в Firefox 3.6.12.

Я предполагаю, что это какая-то проблема с событием, но я не знаю ничего из того, что делает предупреждение, что могло бы вызвать рендеринг dataTables.Есть идеи?Я что-то упускаю глупо очевидное?: -)

1 Ответ

0 голосов
/ 02 ноября 2010

Хорошо, похоже, я нашел обходной путь. Сначала я попытался выполнить инициализацию dataTable в каждом из моих html-файлов, содержащих фрагменты таблицы. Это не сработало, когда я впервые попробовал это, но когда я попробовал это снова, это сработало (не уверен почему, но я все равно приму это. Эта проблема события / рендеринга все еще беспокоит меня, но по крайней мере теперь я не Об этом нужно побеспокоиться для этого приложения. Далее: получение кнопки «Назад» для отслеживания не только вкладок, но и ссылок на содержимое внутри вкладок: -)

...