我正在使用jquery.datatables在数据表列中显示数字。数字被格式化为在数千个单位之间具有空格(如123 456 789
)。不幸的是,这个数字格式提供了字符串排序,而不是号码排序(请参见本问题末尾的屏幕截图)。DataTables对字符串进行排序而不是数字
我已经确定了:
function _fnSort(oSettings, bApplyClasses) {
是排序的核心功能。- 在该功能中,使用动态功能排序的方法(所述一个执行如果
if (!window.runtime) {
为true) 的字符串排序功能使用的是以下两个功能。
/* * 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知识是非常不好的,你会在这里是最好的方法?
- 扭捏串排序功能检测数十万格式化情况,并做比较(我想这将是对大数据集很慢)。
- 提供专用于数字千位格式的数字排序功能?在这种情况下,
- 你会如何编码?
- 我怎么能指出核心排序功能,使用这个特殊的数字排序功能?
以下是排序的样子现在:
太棒了!但是,我怎么能强制_fnSort()使用这个排序功能的相关列? – 2012-07-05 09:33:03
请参阅编辑(链接到文档)。 – 2012-07-05 09:38:47
DataTables的作者在这里 - 很好的答案 - 投票。我建议标记为正确/接受:-)。只有错字是sType为大写'T':http://datatables.net/ref#sType。还值得指出的是,还有很多其他排序插件(一些与类型检测对应) - http://datatables.net/plug-ins/sorting – 2012-07-05 10:00:53