Как перезагрузить таблицу в исходной JavaScript-функции Datatables.js - PullRequest
0 голосов
/ 12 марта 2019

У меня проблема с Datatables, где у меня есть функция, которая создает массив данных для подачи в DataTables.Однако в конце строки находится ячейка с кнопкой, если эта кнопка нажата, она удаляет эту строку из данных, из которых только что извлечена функция (список sharepoint).

Теперь я могу просто сослаться на всю страницуно это медленно и неуклюже.

Если я заставлю кнопку перезапустить функцию, я получу DataTables warning:table id=Ttable2 -Cannnot reinitialise DataTables

Это мой код, в настоящее время он мало что говорит, Tbarray большойи не так много смысла я пишу.

$("#tbBody2").empty();
var table = $('#Ttable2').DataTable({
    data: Tbarray,
    scrollY:"475px",
    scrollCollapse: true,

    });

Редактировать

function BuildSR(Tbarray){

    if ($.fn.DataTable.isDataTable('#Ttable2')) {
        table.destroy();
    }

    var table = $('#Ttable2').DataTable({
        destroy: true,
        data: Tbarray,
        scrollY:"475px",
        scrollCollapse: true,
    });

    table.draw();

}

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Я бы порекомендовал clear() всех записей в таблице и заново заполнить таблицу новыми данными, используя rows.add() метод:

$('#Ttable2').clear().rows.add(Tbarray).draw();

Это должно быть намного быстрее, чем уничтожение и повторная инициализация DataTable.

0 голосов
/ 12 марта 2019

Самый простой способ - уничтожить и повторно инициализировать таблицу данных.

1. проверить, если dataTable уже инициализирован, если так - уничтожить его:

изм

//globally initialize var table first
var table;

if (  $.fn.DataTable.isDataTable( '#Ttable2' ) ) {
    table.destroy();
}

2. Затем выполните инициализацию с параметром destroy: true

table = $('#Ttable2').DataTable({
destroy: true,
data: Tbarray,
scrollY:"475px",
scrollCollapse: true,
});
table.draw();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...