2017-01-23 2 views
0

Я пытаюсь заказать мой jQuery datatable (ниже), но не могу получить первый столбец для сортировки в порядке убывания. Я пробовал "order": [[0, 'desc']], но он не работает. The JS fiddle is here.jQuery Datatables descending sort не работает с опцией «order»

<table id="datatable-table" class="table table-striped table-hover"> 
    <thead> 
     <tr> 
      <th class="hidden-xs" style="width: 10%">Submission Date</ 
      <th class="hidden-xs" style="width: 10%">Start Date</th> 
      <th class="hidden-xs" style="width: 10%">End Date</ 
     </tr> 
    </thead> 
+0

You JSFiddle ничего не показывает. Если вы можете использовать его, чтобы отобразить некоторые данные, которые были бы полезными и лучше проиллюстрировать вашу проблему. – annoyingmouse

+0

@annoyingmouse, извините, мой плохой. Теперь я скопировал и часть HTML. – omrakhur

+0

:-) Возможно, вы сделали, но ссылка по-прежнему показывает тот же код ... – annoyingmouse

ответ

0

По вашему JSFiddle вы хотите отсортировать первый столбец, где вы выводящий дату, используя формат d M Y так дату (UK 01.01.2017) будет представлена ​​как 01 Jan 2016? Это не формат, который понимает DataTables поэтому вам нужно добавить метод сортировки, как это:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "dateNonStandard-asc": function (a, b) { 
    var x = parseInt(moment(a, "DD MMM YYYY").format("X"), 10); 
    var y = parseInt(moment(b, "DD MMM YYYY").format("X"), 10); 
    return (x == y) ? 0 : (x < y) ? 1 : -1; 
    }, 
    "dateNonStandard-desc": function (a, b) { 
    var x = parseInt(moment(a, "DD MMM YYYY").format("X"), 10) 
    var y = parseInt(moment(b, "DD MMM YYYY").format("X"), 10); 
    return (x == y) ? 0 : (x < y) ? -1 : 1; 
    } 
}); 

Это работает example, и я надеюсь, что это помогает.

+0

По какой-то причине JSFiddle ушел, но вы поняли, на что я надеюсь. – annoyingmouse