Используя плагин jQuery DataTables, fnAddData () добавляет строки в верхнюю или нижнюю часть HTML-таблицы? - PullRequest
6 голосов
/ 17 декабря 2009

Я проверил это, и причина, по которой я задал вопрос, заключается в том, что он, кажется, делает разные вещи для разных таблиц.

Я не смог найти никакой документации, если это настраивается или нет. Я бы подумал, что это добавит строки внизу, но у меня есть несколько примеров, где я вижу, как иногда добавляются строки вверху или даже в середине. Это кажется совершенно случайным.

Есть идеи?

Ответы [ 3 ]

12 голосов
/ 21 декабря 2009

Я посмотрел на исходный код, и fnAddData вызывает внутренний метод _fnAddData, который добавляет одну строку и в случае успеха возвращает ее индекс в таблице. _fnAddData добавляет новую строку внизу (индекс новой строки равен количеству строк в таблице).

Однако fnAddData имеет необязательный параметр для перерисовки таблицы с учетом различных функций, которые включены. Этот параметр по умолчанию имеет значение true, и это, вероятно, вызывает «случайное» поведение.

5 голосов
/ 23 декабря 2009

Просмотр источника Datatable, как объяснил kgiannakaki. Метод добавит все новые строки данных в конец таблицы, как следует.

Причина «случайного» поведения заключается в том, что при каждом добавлении новой строки метод будет выполнять «перерисовку» всей таблицы, если не указано иное. При этом таблица проходит через несколько функций, таких как фильтрация / сортировка и т. Д. И т. Д., И полностью переписывается на страницу. По сути, я собираюсь догадаться, что вы добавляете случайные биты данных в новые строки, что может создавать «случайный» эффект всякий раз, когда добавляется новая строка.

Вы можете легко отключить перерисовку таблицы, добавив второй параметр в вызове fnAddData, который должен быть установлен в false.

$(this).fnAddData(data, false);

Если проблема не исчезнет, ​​я сообщу об этой ошибке, поскольку у них нет другой причины для такого поведения.

4 голосов
/ 21 марта 2014

Чтобы отключить сортировку, чтобы новая строка добавлялась к нижней части таблицы, добавьте

"bSort": false

до (верхней части) вашей инициализации DataTable.

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