如何对数据表中的特定列进行排序?

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 应该被启用。我在示例中不小心将其注释掉了

以上是关于如何对数据表中的特定列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 vb.net 以编程方式对 Excel 中的列进行排序?

PyQt5:启用对表中的特定列进行排序

需要帮助:如何设计对数据库中的数据进行排序的网页?

如何同时对熊猫数据框中的列进行排序[重复]

如何禁用对数据表中的列进行排序

我可以创建一个函数来按 R 中不同数据库的特定列名顺序对列进行排序吗?