2016-07-24 47 views
1

我使用這個數據表:https://datatables.net 我的第一列包含這樣的引用:1.1或1.2.1的DataTable排序引用(與點)

,所以我在尋找一種方式來排序的參考表。 我在考慮刪除「。」並獲得像11或121這樣的數字,這更容易分類。

但我不知道,如何從正確的列中刪除點(沒有向用戶顯示任何內容)並在排序前添加「0」。

例如:如果資料進行:1.1 1.1.1 1.2.1 1.2 - > 110,111,120,121

如果資料進行:1.1 2.2.1.1 2.5 - > 1100,2211,2500

任何幫助將不勝感激:)

回答

1

你可以通過一個非常簡單的基於類型的排序插件來實現你想要的。使用排序插件,您可以在對單元格進行排序之前對其內容進行預處理,也可以實現自己的排序算法。在這裏,你只需要通過「固定」號回來,然後數據表將進行排序,因爲它是數字:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "reference-pre": function (ref) { 
    ref = ref.replace(/\./g, '')  //remove dots 
    while (ref.length < 4) ref += '0' //add 0 until length 4 
    return parseInt(ref)    //return as number 
    } 
}) 

用法:

columnDefs : [ 
    { targets: 0, type: 'reference' } 
] 

演示 - >http://jsfiddle.net/vc59bxww/

+0

它工作正常謝謝。 但我忘了說,數字包含在一個輸入... 喜歡: Snooze

+0

@Snooze,這應該是一個nobrainer,使用'ref = $ (ref).val()。replace(/\./ g,'')', – davidkonrad