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



我有一个过期日期检查代码,当数据过期行更改它的背景颜色时,像这样过期日期则成功但是当我插入新行或搜索数据背景颜色消失时,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();后背景颜色如何不消失?

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

最新更新