排序jquery数据表时出现问题



乍一看,它的排序似乎很好,例如,它从2019年一直排序到2020年,然后再回到2019年和病房。(日期格式为DD/MM/YYYY(。包含了下面的脚本和表代码。有人能帮忙吗?

我的代码如下。。。

<script type="text/javascript">
$(document).ready(function () {
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},

"date-uk-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},

"date-uk-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );

$('#tbl').DataTable({
stateSave: true,
order: [[9, 'asc']],
"aoColumns": [
null,
null,
null,
null,
{  "bSortable": false },
{ "sType": "date-uk" },  //THIS IS THE ITEM I CLICK THE SORT BUTTON ON.
null,
null,
null,
{ "sType": "date-uk" },
{ "sType": "date-uk" },
null],
paging: false, "oLanguage": {
"sEmptyTable": "",
"sSearch": ""
}
});
</script>
// Table code
<table class="table  table-bordered" id="tbl">
<thead>
<tr>

<th>
Test Date sort 
</th>

</tr>
</thead>
<tbody>
<td>
@Html.DisplayFor(modelItem => item.TestDate)
</td>
</tbody>
</table>

感谢所有输入,以下是解决方案:

将日期格式更改为:

@Convert.ToDateTime(item.TestDate).ToString("yyyy/MM/dd")

而不是dd/mm/yyyy。然后从jquery中删除了以下代码:

//jQuery.extend( jQuery.fn.dataTableExt.oSort, {
//"date-uk-pre": function ( a ) {
//    var ukDatea = a.split('/');
//    return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
//},
//"date-uk-asc": function ( a, b ) {
//    return ((a < b) ? -1 : ((a > b) ? 1 : 0));
//},
//"date-uk-desc": function ( a, b ) {
//    return ((a < b) ? 1 : ((a > b) ? -1 : 0));
//}
//} );

最新更新