Команда DataTable Cell Update обновляет только первую страницу - PullRequest
0 голосов
/ 25 марта 2019

У меня есть таблица данных, содержащая около 100 строк, но одновременно отображает 10 строк и разбивает их на другие строки.Как мне динамически обновить ячейку на текущей странице моей таблицы данных?Кажется, мой код обновляет строку (выбранную строку) первой страницы, даже когда я на пятой странице.

var NowVariants = 3; 
var row = 4;
var t = $('#mydatatable').DataTable();
t.cell(':eq('+row+')',8).data(NowVariants).draw();

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

1 Ответ

1 голос
/ 25 марта 2019

Прямой ответ на ваш вопрос:

t.cell($('tr:eq('+row+')', t.table().body()), 8).data(NowVariants).draw();

Однако приведенный выше код может не работать с расширениями DataTables, которые управляют телом таблицы, такими как FixedHeader и т. Д.

Также я не одобряю использование здесь индексов строк. Может быть лучше использовать классы или получить индекс выбранной строки.

Например, если вы можете назначить selected класс выбранным строкам, тогда код будет:

t.cell($('.selected', t.table().body()), 8).data(NowVariants).draw();

Если вы можете получить индекс строки выбранной строки, используя row().index() метод API, когда строка выбрана, тогда код будет:

t.cell(rowIndex, 8).data(NowVariants).draw();

Кроме того, может быть предпочтительнее вызвать draw(false), потому что это сохранит текущую страницу между обновлениями, см. draw() для получения дополнительной информации.

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