我正在使用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