2016-06-28 5 views
0

Когда я применяю DataTables к следующему:Как сортировать по скрытому столбцу в DataTables?

<td class="years"><?php $years."-years" ?></td> 
<td class="..." ... 
... other <td> ... 

мой стол отображается следующим образом:

10-years ... ... ... 
10-years ... ... ... 
5-years ... ... ... 
7-years ... ... ... 
9-years ... ... ... 

из-за алфавитного порядка. Мне нужно 10-years, чтобы появиться внизу. Для этого я добавил <td class="hidden"><?php $years ?></td> сразу после <td class="years"><?php $years."-years" ?></td> и добавил "order": [ 1, 'asc' ] к DataTable инициализации:

$(".table-rates").DataTable({ 
    "order": [ 1, 'asc' ] 
}); 

, после чего он перестал работать и начали сообщать об ошибке в консоли: «Не удается прочитать свойство„mData“неопределенных».

Может кто-нибудь объяснить, как я могу сортировать по скрытому столбцу в своих таблицах данных? Я посмотрел онлайн, но решения для меня не сработали. Хуже того, синтаксис чрезвычайно запутан и трудно следовать. Любая помощь будет оценена по достоинству. Благодаря!

+0

Можете ли вы добавить ошибку? –

+0

«Невозможно прочитать свойство« mData »undefined» – Alex

ответ

3

Это innecesary добавить другую колонку, вы можете использовать data-attributes из DataTable, добавьте в ваш HTML код data-order:

<td class="years" data-order="<?php $years ?>"><?php $years."-years" ?></td> 

И ваш код JS:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "order": [ 0, 'asc' ] 
    }); 
}); 

Результат:https://jsfiddle.net/cmedina/7kfmyw6x/69/

+1

Отлично, очень умный, спасибо! – Alex

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