проблема с 'datatable' плагином jquery и двумя таблицами (связанные с ajax) - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть две вкладки, которые их содержимое загружает с помощью ajax. у обоих есть таблица в их содержании. я хочу применить jatery плагин 'datatable' для обеих таблиц. таблицы имеют одинаковый идентификатор, потому что они создаются функцией. Но их строки различны.

плагин для датирования применяется хорошо к первой таблице вкладок, но на второй выдает эту ошибку:

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

Чтобы получить объект DataTables для этой таблицы, передайте либо без аргументов функции dataTable (), либо установите для bRetrieve значение true. В качестве альтернативы, чтобы уничтожить старую таблицу и создать новую, установите для bDestroy значение true (учтите, что с помощью API можно внести много изменений в конфигурацию, которая обычно намного быстрее). "

я использую "bDestroy": true в dataatable подключаемом модуле define.but таким образом, модуль не отображается во второй таблице.

ты мне поможешь?

Ответы [ 5 ]

3 голосов
/ 29 апреля 2011

Ваша проблема в том, что обе таблицы имеют одинаковый идентификатор, который является недействительным HTML.Когда вы пытаетесь инициализировать вторую таблицу данных, ваш селектор находит только первую таблицу и снова пытается инициализировать таблицы данных в первой таблице, что приводит к получаемой вами ошибке.

Вам необходимо изменить свою функцию, чтобы создать каждую таблицу с уникальным идентификатором и инициализировать каждую таблицу ее соответствующим идентификатором.

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

Почему бы не установить Datatables по className, а не ID, тогда это может применяться к обоим из них?

При получении данных вы можете использовать что-то вроде $ ('. DataTableStyle'). Eq (1)получить информацию от соответствующего.

0 голосов
/ 31 декабря 2013

используйте это в функциональном событии, когда вы измените данные таблицы

$('#tbl_resultates').dataTable().fnDestroy();

и добавите

"bRetrieve": true,

в

$('#tbl_resultates').dataTable({
0 голосов
/ 16 августа 2013

попробуйте этот код

$(document).ready(function() {
         oTable = $('#DataTables_Table_0').dataTable({   //DataTables_Table_0 <-------table id
                iVote: -1,   //your field name 
                "bRetrieve":true
            });

        oTable.fnSort( [ [1,'desc'] ] );
     });
0 голосов
/ 28 февраля 2012

Я использую mvc3, и моя проблема была в том, чтобы инициализировать dataTable в представлении, а затем визуализировать частичное представление с другим dataTable. Проблема заключалась не в идентификаторах двух таблиц, а в том, как частичные представления отображаются в платформе. В моем случае мне пришлось переместить сценарий или ссылку на сценарий в представление, в котором размещено частичное представление. У меня была проблема, похожая на эту, с помощью API Карт Google.

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