1
我有一個DataTable,其中我的第一列是VIN號碼。按數據表中的部分數字排序
實施例:FLXVU3822G1000013
現在VIN數字只是一串臨時固定信息。最後6個數字是該年的序列號。你可以看到這輛車是今年的第13個。我真的想讓我的列表過濾掉最後6位數字。有沒有辦法做到這一點?
我有一個DataTable,其中我的第一列是VIN號碼。按數據表中的部分數字排序
實施例:FLXVU3822G1000013
現在VIN數字只是一串臨時固定信息。最後6個數字是該年的序列號。你可以看到這輛車是今年的第13個。我真的想讓我的列表過濾掉最後6位數字。有沒有辦法做到這一點?
您可以通過自定義排序插件輕鬆解決此問題。其實你只需要提取的最後6位數字,並返回它們作爲一個數字,然後數據表將使用內部號碼排序算法排序的列:
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"last-6-digits-pre": function (a) {
var n = a.substring(a.length - 6, a.length)
return parseInt(n)
}
})
用法:
var table = $('#example').DataTable({
columnDefs : [
{ targets: 0, type: 'last-6-digits' }
]
})
其中targets: 0
是要按這種特定方式排序的列的索引。
觀看演示 - >http://jsfiddle.net/zhmcLkb9/
一直在努力實現這一點,我似乎無法得到它的工作,所以我有幾個問題。你爲什麼要在最後6位數字前面? jQuery.extend函數在哪裏引用DataTablie init?在document.ready內部,在其他地方...... – JonD
@JonD,已經更新了演示。嘗試將'columnDefs'的內容註釋掉。 'pre-'用於「準備」(據我記得),每行都會調用它,並且在對錶進行排序時將使用返回的值。你也可以用'-asc'和'-desc'來覆蓋排序算法。據我所知,編寫插件的文檔並不多(據我所知),但您可以在這裏學習其他插件 - > ** https://datatables.net/plug-ins/sorting/** – davidkonrad