我有一个Datatable
这是一个项目列表,我想将日期列排序为降序。
它有效,但它只排序一天。
我想要的是最后添加的项目。
我的脚本是:
<script>
$(function(){
/* Initialize Bootstrap Datatables Integration */
App.datatables();
/* Initialize Datatables */
$('#manage-table').dataTable({
"aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ],
"iDisplayLength": 10,
"aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
"aaSorting": [[ 3, "desc" ]] //date column
});
/* Add placeholder attribute to the search input */
$('.dataTables_filter input').attr('placeholder', 'Search');
});
</script>
答案 0 :(得分:0)
您需要扩展DataTables排序功能,以格式DD-MM-YYYY
对日期进行排序。从您的初始化代码判断,很可能您正在使用DataTables 1.9.x。
请参阅下面的更新代码,我省略了尚未更改的代码:
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"date-uk2-pre": function (a) {
if (a == null || a == "") {
return 0;
}
var ukDatea = a.split('-');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk2-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk2-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
/* Initialize Datatables */
$('#manage-table').dataTable({
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] },
{ "sType": "date-uk2", "aTargets": [ 3 ] }
],
"iDisplayLength": 10,
"aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
"aaSorting": [[ 3, "desc" ]] //date column
});
我修改了原始date_uk
排序插件,按DD-MM-YYYY
而不是DD/MM/YYYY
排序。
有关详细信息,请参阅DataTables 1.9.x date_uk
sorting plug-in或DataTables 1.10.x date_uk
sorting plug-in。