2013-05-19 5 views
0

Я использую JQuery dataTable. делает Ajax вызов на сервер, чтобы получить JSon массив с данными:datatables сортировать по тикам и показывать дату

[{"ticks":635020621354830000,"created":"20/04/13 13:42","action":"1","reference":"1444","fee":"0.6"},{"ticks":635023360450070000,"created":"23/04/13 17:47","action":"0","reference":"1503","fee":"0.6"},{"ticks":635023360461470000,"created":"23/04/13 17:47","action":"0","reference":"1505","fee":"0.6"}] 

я построить таблицу с яваскрипт и вызвать $ ('# туЬаЫе') DataTable ({...} варианты);. Я хочу показать первый столбец «созданными» данными, но отсортировать его по «тикам». Как мне это сделать ? причина в том, что в массиве json есть много записей, что поле «created» имеет одинаковое значение в формате «dd/MM/yy hh: mm» (я не хочу показывать миллисекунды), а тики другой.

ответ

2

Верните тики, как сейчас, но спрячьте их. Используйте параметр iDataSort, чтобы сообщить столбцу даты сортировку с помощью скрытого столбца.

Смотрите эту jsfiddle: http://jsfiddle.net/bFpmJ/

В демо, нажмите на заголовок столбца 0. Значения столбца 0 имеют одинаковую дату, но таблица будет сортироваться правильно. Ярлыки столбцов 1, которые являются самыми ранними/последними в согласии со скрытым столбцом.

Вот соответствующий код:

jQuery('#myTable').dataTable(
    { 
    "aoColumns": [ 
     { "sType":"string", "bSearchable": false, "bVisible": false }, 
     { "iDataSort": 0 }, 
      null, 
      null, 
      null 
     ] 
    } 
    ); 

Обратите внимание на первую колонку невидимыми и не для поиска. Кроме того, из-за длины номера сортировка по умолчанию DataTables не работала (возможно, она не может обрабатывать long этой длины, я не уверен) - вы можете увидеть это, просто удалив «sType»: «string», а затем пытается сортировать по столбцу 0. Поэтому мне пришлось изменить «sType» на «string». Предполагая, что тики всегда одинакового количества цифр, это не должно быть проблемой.

Смежные вопросы