如何对数据表中的特定列进行排序?
Posted
技术标签:
【中文标题】如何对数据表中的特定列进行排序?【英文标题】:How sort with specific column in Datatables? 【发布时间】:2013-12-03 21:58:03 【问题描述】:我正在使用 Datatables 打印 html 表格,在这里我遇到了类似的问题:
table 是动态创建的(使用 while 循环打印),因此我不知道它会有多少列。之后我在
上应用了数据表$('#table').dataTable(
"bDestroy":true,
"sScrollY": temp_fh,
"bPaginate": false,
"bScrollCollapse": true,
"bProcessing": true,
"bFilter":true,
"bSort":true,
);
那么现在如何仅对第二列应用排序?
因为我从Datatables 引用了 bSortable,它允许我们禁用 对特定列的排序,但在这种情况下,我们不知道表格会有多少列。
谢谢。
【问题讨论】:
有一个选择所有列的选项。你可以像这样尝试 s.th: "aTargets": [ '_all' ], "bSortable": false
@MarkusKösel:这将删除所有列的排序,我只想对 col1 和 col2 进行排序。
【参考方案1】:
这个怎么样?
$('#table').dataTable(
"bDestroy":true,
"sScrollY": temp_fh,
"bPaginate": false,
"bScrollCollapse": true,
"bProcessing": true,
"bFilter":true,
"bSort":true,
aoColumnDefs: [
aTargets: [ '_all' ], bSortable: false ,
aTargets: [ 0 ], bSortable: true ,
aTargets: [ 1 ], bSortable: true
]
更新
好的,覆盖 _all 似乎是不可能的。也许你可以在你的while循环中禁用css对列的排序:
<th class="no-sort">
并使用此初始化代码:
// Disable sorting on the no-sort class
"aoColumnDefs" : [
"bSortable" : false,
"aTargets" : [ "no-sort" ]
]
见:disable a column sorting using jquery datatables
【讨论】:
不走运,我猜因为我们使用的是 aTargets: [ '_all' ], bSortable: false 它会禁用所有列的排序。 嗯,我想,对于另外两行,第 1 列和第 2 列应该再次启用。 bSort 应该被启用。我在示例中不小心将其注释掉了以上是关于如何对数据表中的特定列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章