带有" asc"的多列排序的dataTable和" desc"

时间:2017-01-16 08:47:53

标签: javascript datatable

我有一个带有多列排序的dataTable,它可以工作,但我需要:

第一栏" asc"和第二列desc - >这怎么可能?

这是我的小提琴:https://jsfiddle.net/zukii/Lucq6vc5/28/

在这个小提琴列中"评级"是自动默认排序" asc"然后是专栏" Price"应该是自动的" desc"

var mytable = $('table.dt-tarif').dataTable({
    "paging":   false,
    "info":     false,
    "searching": false,
    "order": [[ 3, "desc" ]],

    "aoColumnDefs": [
        {
            "bSortable": false,
            "aTargets": [0]
        },
        { 
            "type": "currency", targets: 3 
        },
        {
            targets: [ 3 ],
            orderData: [3, 4]
        }
    ],

    "language": {
        "lengthMenu": "Zeige _MENU_",
        "zeroRecords": "Keine Entwürfe vorhanden!",
        "info": "Seite _PAGE_ von _PAGES_",
        "infoEmpty": "Es konnte kein Entwurf gefunden werden.",
        "infoFiltered": "",
        "search": " ",
        "paginate": {
            "first": "Erste",
            "last": "Letzte",
            "next": "Vor",
            "previous": "Zurück"
        },
    }
});

感谢和问候;)

3 个答案:

答案 0 :(得分:1)

您需要使用 2D数组来实现多列排序以存档结果。

var table = $('table.dataTable').DataTable();
table
    .order( [ 3, 'asc' ],[ 4, 'desc' ] )
    .draw();

进一步你可以改变格式[columnIndex,“asc | desc”](例如[1,“desc”]进行排序。

  

解决方案小提琴:https://jsfiddle.net/ShirishDhotre/a3utn0ek/7/

检查这是否有助于解决您的问题。

答案 1 :(得分:0)

这个现在正在完善:)

https://jsfiddle.net/zukii/Lucq6vc5/37/

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"currency-pre": function ( a ) {
    a = (a==="-") ? 0 : a.replace( /[^\d\-\.]/g, "" );
    return parseFloat( a );
},

"currency-asc": function ( a, b ) {
    return a - b;
},

"currency-desc": function ( a, b ) {
    return b - a;
}
} );

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "currency": function ( a ) {
     var x = a.replace(",", ".").replace("€", "");
     return parseFloat( x );
  }});

var mytable = $('table.dt-tarif').dataTable({
    "paging":   false,
    "info":     false,
    "searching": false,
    "order": [[ 3, "desc" ]],

    "aoColumnDefs": [
        {
            "bSortable": false,
            "aTargets": [0]
        },
        { 
            "type": "currency", targets: 3 
        },
        {
            targets: [ 3 ],
            orderData: [3, 4]
        }
    ],

    "language": {
        "lengthMenu": "Zeige _MENU_",
        "zeroRecords": "Keine Entwürfe vorhanden!",
        "info": "Seite _PAGE_ von _PAGES_",
        "infoEmpty": "Es konnte kein Entwurf gefunden werden.",
        "infoFiltered": "",
        "search": " ",
        "paginate": {
            "first": "Erste",
            "last": "Letzte",
            "next": "Vor",
            "previous": "Zurück"
        },
    }
});

答案 2 :(得分:0)

您可以使用:
“订单”:[[1,“ asc”],[3,“ desc”]]