禁用除第一列以外的每个列的排序

时间:2013-12-12 15:12:05

标签: javascript jquery sorting datatables

我目前正在使用Datatables作为自定义系统,我想禁用每列但排序第一个。

我尝试使用以下代码,当我添加以逗号分隔的值

时,它正常工作
"aoColumnDefs": [
    { 'bSortable': false, 'aTargets': [ 1, 2, 3, 4 ] }
],

但我的表格列号因每个文件而异,所以我可以有3列或12列,我不想手动添加每个文件的值。

如果我添加的值多于我在一个文件中的列,我会收到以下错误,并执行停止

  

未捕获的TypeError:无法读取未定义的属性“className”

那么,有什么方法可以获得这些索引并将它们传递给函数吗?

谢谢!

3 个答案:

答案 0 :(得分:12)

您可以将特定类添加到您不希望可排序的TH元素中。

<table>
   <thead>
      <th>
         ...
      </th>
      <th class="no-sort">
         ...
      </th>
    </thead>
    <tbody>
      ...
    </tbody>
</table>

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

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

查看here以获取有关列特定选项的更多信息。

答案 1 :(得分:1)

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

&#13;
&#13;
int response = GetIntFromUser("Enter your favorite whole number: ");
Console.WriteLine("You entered the number " + response);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这对我有用,似乎更实用(尽管并不十分优雅)

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