2015-11-02 38 views
1

我有一個表格,其中有第一列作爲月份名稱(1月,2月...),並且我想根據月份數對行進行排序。 1月是第一次,之後是2月等。數據表根據月份名稱作爲數據進行排序

,如果我做

table.fnSort([[ 0, "asc"]]); 

我得到這個月的名稱排序表。

最終,我得到了這個 http://drmsite.blogspot.co.il/2013/08/datatables-custom-sort-by-month-name.html ,但它只適用於當我點擊列的標題。 我需要表格在加載時按月份排序。誰能幫我?

回答

5

你可以實現你自己的排序插件來做到這一點。這很簡單。在這裏我定義了一個月數組,在排序之前,我返回的索引不是這個月份。

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "date-range-pre": function (a) { 
     var monthArr = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 
     return monthArr.indexOf(a); 
    }, 
    "date-range-asc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 
    "date-range-desc": function (a, b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

// Apply date-range sorting with your DataTable init 
var table = $('#example').DataTable({ // example is your table id 
    columnDefs: [ 
     { type: 'date-range', targets: 0 } 
    ] 
}) 

這是一個工作demo

+0

工作完美!我只是在我的代碼中粘貼了它,它工作。謝謝! – Bryce

+0

太棒了!我只是將我的數組值改爲['Jan','Feb','Mar',...,它對我來說非常合適。 –

相關問題