JQuery: запрос DataTables - PullRequest
       3

JQuery: запрос DataTables

0 голосов
/ 19 апреля 2011

Я использую плагин jQuery Datatable для рендеринга таблицы как jQuery DataTable. Я не использую какие-либо вызовы на стороне сервера для получения сведений о строках таблицы.

Я генерирую таблицу HTML с использованием jQuery из информации, доступной на странице, которую пользователь просматривает в настоящее время.

<table cellpadding="0" cellspacing="0" border="0" class="display" id="list_table"> <thead> </thead> <tbody> </tbody> </table>

Когда пользователь нажимает на ссылку, с помощью jQuery я строю необходимые строки для таблицы и устанавливаю ее в тело таблицы.

После этого я инициализирую dataTable, как показано ниже:

$('#list_table').dataTable({ "bProcessing": false, "bJQueryUI": true, "bPaginate": true,<br> "bAutoWidth": false, "bFilter" : true, "bDestory" : true,<br> "oLanguage": { "sZeroRecords": "No data available", "sSearch" :"Filter" } });

Вышеуказанное работает нормально, когда пользователь нажимает на ссылку в первый раз. Но если пользователь нажимает снова, я получаю ошибку dataTable выдает ошибку:

DataTables warning (table id = 'list_table'): Cannot reinitialise DataTable. .....

Несмотря на то, что таблица показана, она теряет свой CSS для данных, поиск больше не работает, следующий предыдущий больше не работает.

Я пробовал различные варианты, такие как установка "bRetrieve" : true, также пытался проверить, доступен ли объект с данными:

 if (typeof dTable == 'undefined') {
         dTable = $('#list_table').dataTable({
              "bProcessing": false,
              "bJQueryUI": true,
              "bPaginate": true,    
              "bAutoWidth": false,
              "bFilter" : true,
              "bDestory" : true,                  
              "oLanguage": { "sZeroRecords": "No data available", "sSearch" :"Filter" }
        });
    } else {
        dTable.fnClearTable();
    } 

Но, похоже, ничего не работает. Я использовал DataTable с ajax-вызовом на стороне сервера для перезагрузки данных с сервера, где он работает нормально, но в этом случае я не уверен, как решить эту проблему.

Спасибо. Jay

Ответы [ 3 ]

4 голосов
/ 18 ноября 2012

если dataTable был инициализирован, он не может быть инициализирован снова, поэтому, если dataTable не равен нулю, вы можете попытаться уничтожить dataTable следующим образом:

if(oTable!=null) oTable.fnDestroy();

затемВы можете решить проблему.

1 голос
/ 26 июля 2011

Быстрое и простое решение этой проблемы - поместить исходную таблицу в div и запустить empty (). Append () для этого div, прежде чем строить таблицу снова.Я думал, что параметр bDestroy позаботится о проблемах заголовка css и столбца, но это не так.Надеюсь, это кому-нибудь поможет!

1 голос
/ 19 апреля 2011

вы получите лучший ответ на свой вопрос на форуме dataTable ... потому что здесь мы поделились некоторыми общими проблемами, которые используются всеми людьми.

вот ссылка на этот форум. Форум DataTable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...