【问题标题】:How do I change the print alignment for individual columns in DataTables?如何更改 DataTables 中各个列的打印对齐方式?
【发布时间】:2018-02-04 07:37:11
【问题描述】:

我能够使用自定义功能(如下所示)来修改打印布局中的对齐方式,但不幸的是,这适用于整个表格及其所有列。

如何更改各个列(我设置和选择)的打印对齐方式?

我当前的代码:

customize: function (win){ $(win.document.body).find('table').css('text-align', 'right'); },

Jsfiddle:

https://jsfiddle.net/6724x3LL/

【问题讨论】:

    标签: javascript css printing datatables alignment


    【解决方案1】:

    首先我尝试了这个,但它似乎不起作用:

    Js

    "columnDefs": [ { className: "col_1", 
    "targets": [0] },
       { className: "col_2", "targets": [1] },
       { className: "col_3", "targets": [2] } ]
    

    CSS

    .dataTable tbody td.col_1 {
      text-align: right;}
    .dataTable tbody td.col_2 {
      text-align: center;}
    .dataTable tbody td.col_3 {
      text-align: left;}
    

    在 JavaScript 中使用 columnDefs 为列设置类,然后在 CSS 中设置这些类的样式仅影响 html 表格呈现器本身,CSS 不会被转移到打印布局中。

    但是我能够找到解决方案。

    通过在打印的自定义选项中使用此脚本代码:

    customize: function (win){
    $(win.document.body).find('table tbody td:nth-child(1)').css('text-align', 'right');
    

    每列将设置第 n 个子项。

    或者使用这种纯 CSS 方法:

    .dataTable tbody tr td:nth-child(1)  {
      text-align: right;}
    .dataTable tbody tr td:nth-child(2)  {
      text-align: center; }
    .dataTable tbody tr td:nth-child(3)  {
      text-align: left; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 2012-10-14
      • 2017-06-19
      • 1970-01-01
      相关资源
      最近更新 更多