Добавить строку в событие createRow - PullRequest
0 голосов
/ 04 марта 2019

С помощью jquery Datatable я пытаюсь добавить новую строку в createRow Event, но она не добавляется.

Что-то здесь не так?

$("test").DataTable({
    "createdRow": function (row, data, dataIndex) {

        $(row).after("<tr><td>test</td></tr>");
    }
});

1 Ответ

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

Я могу предположить, что createdRow callback вызывается, когда узел row готов, но еще не вставлен в DOM, поэтому место, на которое ссылается .after(), на самом деле неизвестно.

КакЯ пытался обмануть DataTable с помощью чего-то, например:

createdRow: row => {
    let newRowTemplate = document.createElement('template');
    newRowTemplate.innerHTML = `${row.innerHTML}<tr><td>test</td></tr>`;
    row = newRowTemplate.content.children;
}

У меня тоже не получилось, так как DataTable, вероятно, отфильтровывает firstChild из HTMLCollection, поэтому я не вижу способа добавить 2x <tr> узлов этого обратного вызова.

Обходной путь, я думаю, использует row().child(), что даст вам ожидаемый результат:

createdRow: (row, data, dataIndex) => {
    $('#test').DataTable().row(dataIndex).child('<tr><td>test</td></tr>').show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...