【问题标题】:How to Set 'targets' Dynamically in columnDefs Datatables如何在 columnDefs 数据表中动态设置“目标”
【发布时间】:2015-03-27 09:55:47
【问题描述】:

我想根据列名更改列排序。我正在使用

$(document).ready(function () {
  $('.datatable_tri').dataTable({
 'columnDefs': [ { 'type': 'file-size', 'targets': 1 }  ],
    'aaSorting': [],
    'iDisplayLength': 50
  });
});

对于许多数据表,我有 3 个或更多,我不想硬编码 0 或 1 等目标的值...

我也尝试过使用

'columnDefs': [ { 'type': 'file-size', 'title': 'SIZE' } ], 

但它不起作用。

PS : SIZE 是列标题

这是一个小提琴 --> http://jsfiddle.net/v07uxf35/3/

【问题讨论】:

  • 我还是对你的问题有点困惑?

标签: javascript php jquery sorting datatables


【解决方案1】:

aaSorting 虽然仍受支持,但它是旧版本 DataTables 1.9.x 的属性。较新的版本 1.10.x 使用 order 属性。

根据order 属性和相应columns.orderData 属性的文档,两者都只需要列索引。

如果您不想在targets 中使用索引,请使用columns 而不是columnDef。它使代码更具可读性,因为它不需要targets,只需要按照它们在表中出现的顺序列出列。

【讨论】:

  • ???对不起,但可能是你没有理解我的要求。我有这么多表,每个表都包含一个文件大小列,我正在使用数据表的文件大小插件对这一列进行排序。我在上面放的例子是一个表,该列的目标是“1”。我不想使用 aaSorting 或 order,我定义了一个函数并像这样调用它:'columnDefs': [ { 'type': 'file-size', 'targets': 1 } ],
  • 我明白,您不想在目标中使用索引。请参阅我在第三段中的建议。或者,您可以为 <th> 标签设置类属性并将该名称用作目标,请参阅文档 (datatables.net/reference/option/columnDefs.targets)。
  • 感谢@Gyrocode.com,<th>上的类属性解决我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 2018-09-12
  • 2021-01-24
  • 2012-07-31
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
相关资源
最近更新 更多