Javascript jquerydatatables:如何按照自定义参数值而不是单元格内容进行排序?

Javascript jquerydatatables:如何按照自定义参数值而不是单元格内容进行排序?,javascript,jquery,html,datatable,datatables,Javascript,Jquery,Html,Datatable,Datatables,我有一个非常常见的用例,我在价格栏中显示格式化的价格,例如“20000.00”。因此,当我尝试对其进行排序时,它将其视为字符串,排序不好: 10点 20000.00 5000.00 我可以让它按数据参数值排序吗?参数值是非格式化的浮点数 与此问题相关:如何禁用给定列的排序?我使用的是DataTables 1.9.4。要回答您的第一个问题,您可以使用DataTables插件页面上提供的格式化数字插件。我会在这里发布代码,但由于它们经常更新,我只会发布链接 您有几个选项可以禁用对特定列的排序。

我有一个非常常见的用例,我在价格栏中显示格式化的价格,例如“20000.00”。因此,当我尝试对其进行排序时,它将其视为字符串,排序不好:

  • 10点
  • 20000.00
  • 5000.00
我可以让它按数据参数值排序吗?参数值是非格式化的浮点数


与此问题相关:如何禁用给定列的排序?我使用的是DataTables 1.9.4。

要回答您的第一个问题,您可以使用DataTables插件页面上提供的格式化数字插件。我会在这里发布代码,但由于它们经常更新,我只会发布链接

您有几个选项可以禁用对特定列的排序。您可以采用传统路线,在init对象中放置一行,例如

"aoColumns": [
   null,null,null,{ "bSortable": false },null,null
]
其中null是您不想对其执行任何操作的列,而bSortable对象是您希望生效的列

由于您正在运行1.9+,因此可以执行以下操作

"aoColumnDefs": [
    { "bSortable": false, "aTargets": [ 4 ] }
],
在本例中,4是要禁用排序的列。请记住,第一列是0,因此从技术上讲,这将是第五列。

使用此页面查看您可以添加的所有排序类型。有相当多的有和易于使用。基本上,您需要包括在每种类型的ShowDetails部分下显示的代码片段。此代码需要在datatables初始化后包含。就我个人而言,因为我在我的网站上使用了很多,所以我制作了一个单独的文件,名为datatables.sorting.js,在包含datatables之后再包含它。这样,我可以根据需要添加任意多的各种排序类型

添加代码后,您可以使用aoColumns参数告诉datatables在您想要的列上应用该排序方法:

$('#myTable').dataTable({
"aoColumns": [
            null,
            null,
            { "sType": "formatted-num" }
        ]
});


我添加了用于对格式化数字进行排序的代码,您可以像我一样将其包括在内,也可以将其包含在单独的文件中。

无法添加自定义排序,您是否有示例代码?我正在尝试使用格式化的数字,当我使用sType:“Formatted num”时,它只是禁用了该列的排序。有什么想法吗?和之间到底是什么。如果其中有其他HTML,则需要在HTML类型检测插件中使用数字。@shershams在初始化数据表之前,请确保包含链接中的代码。我通常会将所有这些都放到一个js文件中,并通过一个脚本标记将其包括在内,以确保我一直在使用它。之后,它应该开始为您正常工作。如果您使用的是Chrome,请检查控制台是否有任何错误消息。如果是Firefox,使用firebug,如果是IE,我想当你点击F12时,它会有一个控制台,但只在更新版本中。