【发布时间】:2012-07-05 16:24:01
【问题描述】:
我正在使用jquery.datatables 在数据表列中显示数字。数字被格式化为在千单位之间有空格(如123 456 789)。不幸的是,这种数字格式会引发 string 排序而不是 number 排序(请参阅本问题末尾的屏幕截图)。
我已经确定:
-
function _fnSort(oSettings, bApplyClasses) {是排序的核心函数。 - 在这个函数中,使用了动态函数排序方法(如果
if (!window.runtime) {为真则执行) -
使用的字符串排序函数是以下两个函数。
/* * text sorting */ "string-asc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }, "string-desc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); },
我的javascript知识很差,这里最好的方法是什么?
- 调整字符串排序函数以检测 格式化数以千计 的情况,并进行比较(我猜这在大型数据集上会很慢)。
- 提供专用于千位格式的数字排序功能?在这种情况下
- 您将如何编码?
- 如何向核心排序功能指示使用这个特殊的数字排序功能?
这是排序现在的样子:
【问题讨论】:
标签: jquery sorting datatables