Render datatables не работает после ajax.reload - PullRequest
0 голосов
/ 28 мая 2019

У меня есть код для проверки даты с истекшим сроком, когда строка данных с истекшим сроком действия меняет цвет фона, например успех, если дата с истекшим сроком действия , но когда я вставляю новую строку или данные поиска цвет фона исчезает , когда table.ajax.reload();

мой скрипт рендеринга ajax

"aoColumns": [
                ../
                { "mData": "expired",
                "render": function ( data, type, row, meta ) {
                    var today = '<?php echo date("d/m/Y"); ?>';
                    if (data < today) {
                        $("td")
                        .filter(function() { return $.text([this]) == data; })
                        .parent()
                        .addClass("expired-date");
                        return '<td>'+data+'</td>';
                    }
                    else {
                        $("td")
                        .filter(function() { return $.text([this]) == data; })
                        .parent()
                        .removeClass("expired-date");
                        return '<td>'+data+'</td>';
                    }
                }
            },

как цвет фона не исчезает после table.ajax.reload();?

1 Ответ

0 голосов
/ 28 мая 2019

Если вам нужно изменить стиль всей строки, назначив класс 'expired-date' для устаревших записей, более логично использовать параметр createdRow, например, как это:

$('#yourTableId').DataTable({
    ...
    createdRow: (tr, data) => new Date(data.expired.split('/').reverse().join('/')) < (new Date()).setHours(0,0,0,0) ? $(tr).addClass('expired-date') : true
});

Кроме того, вам не нужно внедрять серверную часть сегодня, вы можете получить ее для пользователя точно так же, как я это делал выше, при условии, что вы получили даты в формате DD/MM/YYYY, как это видно на скриншоте. В противном случае, если пользователь не обновил всю страницу в течение нескольких дней, он может получить неожиданные результаты, поскольку некоторые записи не будут выделены.

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