You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery DataTable打印布局中高亮指定行

解决jQuery DataTable打印时保留指定行高亮样式的问题

你已经通过createdRow为目标行添加了d-flag类,要让这个样式在打印时生效,需要从CSS样式适配和DataTables打印配置两方面入手:

1. 添加打印媒体类型的CSS样式

浏览器默认打印时会忽略背景色等样式,需要专门为打印场景设置样式,并强制浏览器保留颜色:

/* 页面显示时的高亮样式 */
.d-flag {
    background-color: #ffcccc !important; /* 替换成你的实际高亮颜色 */
}

/* 打印时的高亮样式 */
@media print {
    .d-flag {
        background-color: #ffcccc !important;
        -webkit-print-color-adjust: exact; /* 适配Chrome、Edge等webkit内核浏览器 */
        print-color-adjust: exact; /* 标准属性,适配其他浏览器 */
    }
}

2. 配置DataTables打印按钮的自定义样式

如果使用DataTables的Buttons扩展实现打印功能,需要确保打印窗口能加载到自定义样式,可通过customize回调在打印窗口中注入样式:

$('#yourTableId').DataTable({
    // 你的其他配置项
    createdRow: function (row, data, dataIndex) {
        var date = new Date(data.dateOfReg);
        var days = datediff(date, new Date());

        if (days >= 30 && parseInt(data.received) < 2000 && parseInt(data.payment) >= 2000) {
           $(row).addClass('d-flag');
        }    
    },
    buttons: [
        {
            extend: 'print',
            customize: function (win) {
                // 向打印窗口的头部注入样式
                $(win.document.head).append(`
                    <style>
                        .d-flag {
                            background-color: #ffcccc !important;
                            -webkit-print-color-adjust: exact;
                            print-color-adjust: exact;
                        }
                    </style>
                `);
            }
        }
    ]
});

补充说明

部分浏览器(如Chrome)默认会关闭“打印背景图形”选项,你可以在打印预览界面的「更多设置」里勾选该选项,确保背景色完全生效。

内容的提问来源于stack exchange,提问作者Nazmul Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:40:36