2017-01-16 1 views
2

у меня есть DataTable с упорядочением нескольких столбцов, и она работает, но мне нужно:DataTable с упорядочением нескольких столбцов с «АСК» и «DESC»

первый столбец «по возрастанию» и второй по убыванию столбец -> как Это возможно?

вот моя скрипка: https://jsfiddle.net/zukii/Lucq6vc5/28/

в этой скрипкой столбец «Рейтинг» является сортировка автоматическая по умолчанию «ИСС», а затем столбец «Цена» должно быть автоматическим «убывание»

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" 
     }, 
    } 
}); 

спасибо и привет;)

+0

должно быть -> лучший рейтинг с самой низкой ценой! – zukii

ответ

0

Вы нужно использовать 2D массив для достижения нескольких столбцов сортировки для архивирования результата ,

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

дальше вы можете изменить формат [ColumnIndex, "возр | убыв"] (например, [1, "Desc"] для сортировки

Решение скрипку: https://jsfiddle.net/ShirishDhotre/a3utn0ek/7/

. Проверьте, не помогает ли эта проблема закрыть вашу проблему.

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" 
     }, 
    } 
});