ajax.reload后渲染数据表不起作用

时间:2019-05-28 14:59:48

标签: jquery datatables

当数据过期行将其背景颜色更改为这样时,我有一个过期日期检查代码 success if expired date 但是当我插入新行或搜索数据时,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 :(得分:0)

如果您需要通过为过时的条目分配“过期日期”类来修改整个行样式,则使用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格式,就像您在屏幕截图中可以看到的那样。否则,如果用户几天没有刷新整个页面,则由于某些条目将不会突出显示,他可能会得到意外的结果。