DataTables:启用服务器端处理时,在排序时忽略空单元格

时间:2017-02-22 09:29:49

标签: javascript datatables

我正在使用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>

如何在启用服务器端处理时获得相同的客户端排序行为?

问候。

0 个答案:

没有答案