我正在使用DataTables jQuery插件,在我转向服务器端处理之前,我使用自定义排序方法来忽略空单元格。
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
'dateNonStandard-asc': function (a, b) {
var x = Date.parse(a);
var y = Date.parse(b);
if (x == y) { return 0; }
if (isNaN(x) || x < y) { return 1; }
if (isNaN(y) || x > y) { return -1; }
},
'dateNonStandard-desc': function (a, b) {
var x = Date.parse(a);
var y = Date.parse(b);
if (x == y) { return 0; }
if (isNaN(y) || x < y) { return -1; }
if (isNaN(x) || x > y) { return 1; }
}
});
由于这是一个客户端方法,因此我不再使用服务器端处理。
完整代码
JS
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
'dateNonStandard-asc': function (a, b) {
var x = Date.parse(a);
var y = Date.parse(b);
if (x == y) { return 0; }
if (isNaN(x) || x < y) { return 1; }
if (isNaN(y) || x > y) { return -1; }
},
'dateNonStandard-desc': function (a, b) {
var x = Date.parse(a);
var y = Date.parse(b);
if (x == y) { return 0; }
if (isNaN(y) || x < y) { return -1; }
if (isNaN(x) || x > y) { return 1; }
}
});
$('#minio-data').DataTable({
"processing": true,
"serverSide": true,
"ajax": "/data-src",
columnDefs: [
{ type: 'dateNonStandard', targets: [-1, -2] }
]
});
HTML
<table id="minio-data" class="table">
<thead>
<tr>
<th width="12%">No.</th>
<th width="8%">Name</th>
<th width="20%">Age</th>
<th width="8%">Gender</th>
<th width="17%">Joined Date</th>
</tr>
</thead>
</table>
如何在启用服务器端处理时获得相同的客户端排序行为?
问候。