Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DataTables-如何使用自定义条件对列进行排序?_Javascript_Php_Jquery_Datatable - Fatal编程技术网

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

Javascript DataTables-如何使用自定义条件对列进行排序?,javascript,php,jquery,datatable,Javascript,Php,Jquery,Datatable,在我的一个基于PHP的项目中,我需要使用自定义条件或自定义顺序,而不是数据表的默认顺序(升序或降序),对列进行排序 我有四种状态:紧急、高、中、低 我想要的定制订单是: 在提升过程中,它将是:低、中、高、紧急 在下降过程中,它将是:紧急、高、中、低 因此,在搜索了数据表之后,我找到了一个在数据表中正常工作的解决方案。这里是[稍微定制以满足我的标准]: $.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {

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

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


我想要的定制订单是:

在提升过程中,它将是:低、中、高、紧急
在下降过程中,它将是:紧急、高、中、低


因此,在搜索了数据表之后,我找到了一个在数据表中正常工作的解决方案。这里是[稍微定制以满足我的标准]:

$.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
        } ]
    });
});

但我得到的命令是:

上升:高、低、中、急
下降:紧急、中等、低、高


不知什么原因,低和高的顺序都错了

有谁能帮助我解决代码中的问题,或者提供解决方案

  • 谢谢

阅读下一个示例:

我认为,您需要这样做:

$.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
        } ]
    });
});