我有一个表,其中第一列作为月份名称(一月、二月...),我想根据月份数对行进行排序。首先是一月,然后是二月,依此类推。
如果我愿意
table.fnSort([[ 0, "asc"]]);
我得到了按月份名称排序的表格。
最终我得到了这个 http://drmsite.blogspot.co.il/2013/08/datatables-custom-sort-by-month-name.html ,但只有当我单击该列的标题时它才起作用。 我需要在加载时按月份对表格进行排序。谁能帮我吗?
最佳答案
您可以实现自己的排序插件来做到这一点。这很简单。这里我定义了一个月份数组,在排序之前我返回索引而不是月份。
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 .
关于jquery - DataTable 按月份编号排序,月份名称作为数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33475013/