数据表对齐列中的文本

问题描述 投票:0回答:2

我在我的应用程序中使用 DataTables,效果很好。为了使文本居中,我使用:

{ className: 'dt-center', targets: '_all' },

但是,对于最后一列,我想将文本向左对齐而不是居中对齐,但以下内容没有效果:

{ targets: [ 12 ], className: 'dt-left' }

这是我的完整代码:

$('#audits-datatable').DataTable({
    columnDefs: [
        { width: '70px', targets: [ 0, 1, 11 ] },
        { width: '125px', targets: [ 8 ] },
        { width: '600px', targets: [ 12 ] },
        { className: 'dt-center', targets: '_all' },
        { targets: [ 12 ], className: 'dt-left' }
    ],
});

为什么第 12 列中的“dt-left”没有覆盖“dt-center”?它仍然显示居中对齐而不是左对齐。

jquery datatables
2个回答
1
投票

我找到了解决方案。我将其发布在这里希望对某人有所帮助。关键是把第6行和第7行颠倒过来;但是,它仅适用于表体,不适用于表头。对于表头,我需要添加 className: 'dt-head-left'。

对我有用的最终代码:

$('#audits-datatable').DataTable({
        columnDefs: [
        { width: '70px', targets: [ 0, 1, 11 ] },
        { width: '125px', targets: [ 8 ] },
        { width: '600px', targets: [ 12 ] },
        { targets: [ 12 ], width: '650px', className: 'dt-left', className: 'dt-head-left' },
        { targets: '_all', className: 'dt-center' }
    ],
});

0
投票

我也遇到了同样的问题。但这是我在调查中发现的。根据我的发现,解决方案很简单,但了解问题背后的原因很重要。

我不知道你的第12列中,你使用的是哪种值。 我假设,它要么是

date
要么是
numeric
值。 假设我们的列包含一个日期值。

如果是这样,当我们最初加载表时,库会添加一个附加类

dt-type-date
到细胞,

<td class="dt-type-date">2024-03-06 15:42:33</td>

即使我们像这样为数据表对象分配额外的配置,

columnDefs: [
  {
     targets: '_all',
     className: 'dt-left'
  }
],

库将 .dt-left 类添加到单元格中

<td class="dt-type-date dt-left">2024-03-06 15:42:33</td>

但是

dt-type-date
类会覆盖
.dt-left
.dt-right
中的 css。

如果你查看这些类,它们都具有相同的 css 属性,即

text-align
,如果你查看 css 文件
datatables.min.css
文件,
.dt-type-date
类是在
.dt-left
.dt-right
之后定义的。这就是
.dt-left
配置不起作用的原因。

我解决这个问题的方法是,

我必须明确告诉,

.dt-head-left
.dt-body-left
特定的数据表配置对象。而且它有效。

就你而言,就像我猜的那样,

{ targets: [ 12 ], className: 'dt-head-left dt-body-left' }

希望能解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.