当数据过期行将其背景颜色更改为这样时,我有一个过期日期检查代码
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();
之后背景颜色如何不消失?
答案 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
格式,就像您在屏幕截图中可以看到的那样。否则,如果用户几天没有刷新整个页面,则由于某些条目将不会突出显示,他可能会得到意外的结果。