[英]How can I write a custom sort for jQuery Datatables?
我正在使用jQuery插件Datables: http ://www.datatables.net/
我的示例在這里: http : //live.datatables.net/wanebotu/1/edit
我的示例表中有幾列,其中之一是“名稱”。 我添加了一些相同的名稱,但一個以大寫字母開頭,另一個都以小寫字母開頭。 例如:Ashton Cox,ashton cox。 但是,我確實相信數據表中使用的默認排序不區分大小寫,這意味着排序是“穩定的”(如果我錯了,請糾正我)。
我的問題是,當我對它進行排序時,該列變得不一致。 如果升序,則大寫字母將首先出現,即第一行是Ashton Cox,然后是ashton cox。 如果是降序,則最后一行是ashton cox,然后倒數第二行是Ashton Cox。
因此,如果它是相同的單詞但大寫,那么我該如何編寫一個自定義排序,使最后一行的首行大寫降序。
E.g. for ascending:
Ashton Cox
ashton cox,
Colleen Hurst
colleen Hurst
E.g. for descending:
colleen hurst,
Colleen Hurst,
ashton cox
Ashton Cox
很抱歉,這一切聽起來令人費解。 這是一個令人困惑的問題,要求令人困惑。
使用以下代碼進行了此操作:
$.extend( $.fn.dataTableExt.oSort, {
"casetext-pre": function ( a ) {
return a[0].toLowerCase()+a;
},
"casetext-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"casetext-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
$(document).ready( function () {
var table = $('#example').DataTable({
"aoColumns": [{
"sType": "casetext"
},null,null,null,null,null]
});
} );
這將定義一個新的排序函數/類型,該函數/類型會將數據的第一個字符轉換為小寫,然后附加原始字符串數據。
請注意,必須在aoColums
設置數據類型。 (在此示例中,我只關心具有特定類型的名稱)。 null
的數量應與您的列匹配。
這沒有經過非常徹底的測試,但是應該給您提示如何進行。
這是您修改的示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.