Datatables имеет только 10 строк, доступных вне функции создания DataTables - PullRequest
0 голосов
/ 31 августа 2018

Я использую Django и в одной из своих тамплат я использую таблицы данных (1.10.19) для отображения данных моей таблицы. Вот как выглядит мой код:

$(document).ready( function () {
        table = $('#mytable').DataTable({
            "pagingType": "full_numbers",
            data: dataSet,
            columns: [
                { title: "Naslov zahtjeva" },
                { title: "Datum slanja" },
                { title: "Status" },
                { title: "Rok Izvršenja." },
                { title: "Id zahtjeva" },
            ],
            "fnCreatedRow": function(row, data, index){
                $(row).addClass("clickable-row");
                $(row).attr('data-href', data[4]);
                $(row).addClass("table_row_point");
            },
        });

Проблема возникает в строке -> $ (строка) .attr ('data-href', data [4]); У меня есть другая функция, которая предназначена для использования этого идентификатора из атрибута data-href для перехода на другую страницу, подобную этой

jQuery(document).ready(function($) {
        $(".clickable-row").click(function() {
            window.location = $(this).data("href");
        });
    });

Дело в том, что он отлично работает для первых 10 строк, и когда я пытаюсь 'console.log (this);' Я получаю enter image description here

Только для первых 10 строк, и он действует как другие 3000, даже не существует, я думаю, что это связано со значением по умолчанию 10 строк, которые появляются, но для меня нет смысла нормально отображать данные , но элемент 'tr' существует не для всех, а для 10 из них.

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

$('#mytable tbody').on( 'click', 'tr', function () { console.log( this ); } );

Если у кого-то есть идея, она будет очень признательна

1 Ответ

0 голосов
/ 31 августа 2018

fnCreatedRow функция выполняется каждый раз, когда datatable создает элемент <tr> в dom. Поскольку вы включили разбиение на страницы, функция запускается только на элементах <tr>, созданных в то время. Если вы перейдете на следующую страницу, вы увидите, что консоль печатает следующий набор строк.

Кстати, я думаю, createdRow предпочтительнее старого fnCreatedRow соглашения о присвоении имен. https://datatables.net/reference/option/createdRow

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