javascript - DataTables - 如何使用自定义条件对列进行排序?

标签 javascript php jquery datatable

在我的一个基于 PHP 的项目中,我需要使用自定义条件或自定义顺序而不是 DataTable 的 默认顺序(升序或降序)来对 进行排序。

我有四种状态:紧急、高、中、低


我想要的自定义顺序是:

在上升期间它将是:低、中、高、紧急
在下降过程中它将是:紧急、高、中、低


因此,在搜索 DataTables 后,我找到了一个在 DataTables 中运行良好的解决方案。这是[稍微定制以满足我的标准]:

$.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {
    switch ( d ) {
        case 'Low'      :   return 1;
        case 'Medium'   :   return 2;
        case 'High'     :   return 3;
        case 'Urgent'   :   return 4;
    }
    return 0;
};

$( document ).ready( function() {
    //initializing datatables
    $('#ticketList').DataTable({
        "paging"    :   false,
        "info"      :   false,
        "searching" :   false,
        "order": [[ 0, "desc" ]],
        "columnDefs": [ {
            "type": "ticket-priority",
            "targets": -1
        } ]
    });
});

但是我得到的顺序是:

升序:高、低、中、紧急
降序:紧急、中等、低、高


由于某些未知原因,LowHigh 执行了错误的顺序。

谁能帮我解决代码中的问题或提供解决方案?

  • 谢谢

最佳答案

阅读下一个例子:

https://datatables.net/examples/plug-ins/sorting_auto.html

我认为,您需要这样做:

$.fn.dataTable.ext.type.detect.unshift(
    function ( d ) {
        return (d === 'Low' || d === 'Medium' || d === 'High' || d === 'Urgent') ?
            'ticket-priority' :
            null;
    }
);

$.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {
    switch ( d ) {
        case 'Low'      :   return 1;
        case 'Medium'   :   return 2;
        case 'High'     :   return 3;
        case 'Urgent'   :   return 4;
    }
    return 0;
};

$( document ).ready( function()
{
    // Initializing datatables.

    $('#ticketList').DataTable({
        "paging"    :   false,
        "info"      :   false,
        "searching" :   false,
        "order"     : [[ 0, "desc" ]],
        "columnDefs": [ {
            "type": "ticket-priority",
            "targets": -1
        } ]
    });
});

关于javascript - DataTables - 如何使用自定义条件对列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52934571/

相关文章:

javascript - mustache JS 表 strip 化

javascript - 值 - 特性和属性

Javascript - 迭代数组并调用 Jquery Ajax 请求并等待请求完成,然后再转到下一个请求?

javascript - 使用jquery清空html后重新获得html?

javascript - 使用 jquery 捕获下一个/上一个特定属性

javascript - 如何让Javascript同步运行函数

javascript - Angularjs 和 Chart.js 最小示例

javascript - 从数据库填充数据时,Jquery token 输入不起作用

javascript - 从 PHP 读取 XML 并传递给 JavaScript

php变量obj转js