除第一列外,禁用每一列的排序功能

6
我目前在使用Datatables自定义系统,我想禁用除第一列以外的所有列的排序功能。
我尝试使用以下代码,当我添加逗号分隔的值时,它可以正常工作。
"aoColumnDefs": [
    { 'bSortable': false, 'aTargets': [ 1, 2, 3, 4 ] }
],

但是我的表格每个文件的列数都不同,所以我可能会有3列或者12列,并且我不想手动为每个文件添加值。
如果我在一个文件中添加的值比我拥有的列数多,我会得到以下错误并停止执行:
Uncaught TypeError: Cannot read property 'className' of undefined
那么,有没有办法获取这些索引并将它们传递给函数呢?
谢谢!
3个回答

12
你可以为不想被排序的TH元素添加特定类。
<table>
   <thead>
      <th>
         ...
      </th>
      <th class="no-sort">
         ...
      </th>
    </thead>
    <tbody>
      ...
    </tbody>
</table>

然后您可以在aTargets参数中指定这个类。

"aoColumnDefs": [
    { 'bSortable': false, 'aTargets': ['no-sort'] }
]

点击此处获取有关列特定选项的更多信息。


1
然后您可以在aTargets参数中指定这个类。

columnDefs: [ { orderable: false, targets: [1,2,3,4,5,6,7,8,9] } ]


0

这对我有用,而且似乎更实用(虽然不是非常优雅)

columnDefs: [
  {
    "targets": [0],
    "orderable": true
  }, {
    "targets": [''],
    "orderable": false
  }
]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接