jQuery Datatable сортировка по дате с текстом

У меня есть довольно простая таблица данных jQuery, состоящая из нескольких столбцов, и у меня есть один столбец, содержащий Тему, Срок выполнения и краткое описание.

ScreenshotЯ хотел бы отсортировать столбец только по дате выполнения и игнорировать остальные. Это отлично работает, если у меня есть только дата, но как только я добавляю дополнительный текст, он больше не сортируется должным образом.

Вот фрагмент кода jQuery:

$(document).ready(function() {

        $('#casesDataTable').dataTable(
        {
            "sPaginationType": "full_numbers",
            "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
            "iDisplayLength": 100,
            "aaSorting": [[1, "desc"]]
        });
   });

А вот фрагмент кода HTML без CSS:

<tr>
    <th id="subject" style="width:40%;">
        Subject & Due Date
        <span class="DataTables_sort_icon css_right ui-icon ui-icon-triangle-1-n"></span>
    </th>

    <th id="modified" style="width:10%;">
        Last Modified
        <span class="DataTables_sort_icon css_right ui-icon ui-icon-triangle-1-n"></span>
    </th>

</tr>

<td class="center subject">
    <span style="display: none;">9/26/2011</span>
        <div class="padding">
            tester 3
        </div>
        <div class="padding duedate">
        <p>9/26/2011 - Mauris nulla mauris, ornare quis accumsan vitae, consectetur non sapien. In congue dui in sem cursus eleifend. Ut non suscipit augue. Praesent euismod auctor felis, eget pharetra justo euismod a. </p>
        </div>
</td>

<td class="center sorting_1">
     2/9/2011
</td>

<td class="center subject">
    <span style="display: none;">4/30/2013</span>
        <div class="padding">
            tester 1
        </div>
        <div class="padding duedate">
            <p>4/30/2013 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque adipiscing rutrum lacinia. Donec ullamcorper ligula eu purus semper semper. Sed in est et nibh condimentum semper quis ultricies u...</p>
        </div>
</td>

<td class="center sorting_1">
    4/15/2013
</td>

    <td class="center subject">
    <span style="display: none;">5/16/2012</span>
                <div class="padding">
                    tester 2
                </div>
                <div class="padding duedate">
                <p>5/16/2012 - Nullam viverra, urna a tempus scelerisque, odio purus ultricies nibh, mollis pellentesque justo est quis augue. Quisque nec odio libero, tempus viverra leo.</p>
                </div>
    </td>

    <td class="center sorting_1">
         2/9/2012
    </td>

    <td class="center subject">
    <span style="display: none;">5/16/2010</span>
                <div class="padding">
                    tester 4
                </div>
                <div class="padding duedate">
                <p>5/16/2010 - In vulputate rutrum elit nec mattis. Integer ullamcorper vestibulum sapien adipiscing gravida. Nullam quis ante diam, vel luctus elit. Quisque id adipiscing erat. ?</p>
                </div>
    </td>

    <td class="center sorting_1">
         2/9/2010
    </td>

Когда я запускаю этот скрипт и сортирую по «Последним изменениям», он работает нормально, но если я сортирую по «Теме и дате выполнения», он испортится, когда я пытаюсь заставить его сортировать по дате выполнения, которая находится в скрытом span после каждого .

Кто-нибудь знает, как это сделать, или может увидеть, что я делаю неправильно?


person Robert    schedule 15.04.2013    source источник


Ответы (1)


У меня была аналогичная проблема, и я нашел решение на днях.

Для любого столбца можно указать параметр iDataSort, который указывает альтернативный столбец для сортировки. Вы можете объединить это с дополнительным столбцом, в котором у вас есть только дата, но скрыть этот столбец, используя bVisible = false.

См. справку по столбцам на странице http://datatables.net/usage/columns.

person Chris Denning    schedule 15.04.2013
comment
Спасибо Крис! Это указало мне правильное направление, и у меня все заработало! - person Robert; 15.04.2013