сделать столбцы нестабильными в dataTables.js плагине jQuery - PullRequest
18 голосов
/ 30 апреля 2011

Я использую плагин dataTables.js jQuery.

Первый столбец моей таблицы - счетчик строк, поэтому я не хочу, чтобы пользователь сортировал его. Последний столбец содержит ссылку на действие, которую пользователь может выполнить в строке. Как я могу сделать эти два столбца несортируемыми?

Примечание. Я использую режим обработки данных в конвейерном режиме (на стороне сервера).

Ответы [ 4 ]

12 голосов
/ 07 мая 2011

Это делается путем установки bSortable в значение false:

/* Using aoColumnDefs */
$(document).ready(function() {
    $('#example').dataTable( {
        "aoColumnDefs": [ 
            { "bSortable": false, "aTargets": [ 0 ] }
        ] } );
} );

/* Using aoColumns */
$(document).ready(function() {
    $('#example').dataTable( {
        "aoColumns": [ 
            { "bSortable": false },
            null,
            null,
            null,
            null
        ] } );
} );
8 голосов
/ 06 октября 2014

DataTables 1.10+ также поддерживает атрибуты стиля HTML5 data- , включая data-sortable="false", что делает столбец непригодным для сортировки:

<table>
    <thead>
        <tr>
            <th data-sortable="false">Row</th>
            <th>Name</th>
            <th>Join Date</th>
            <th>Organization</th>
            <th data-sortable="false">Options</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            [etc]
        </tr>
    </tbody>
</table>

См. демо в jsFiddle

3 голосов
/ 30 апреля 2011

aaSortingFixed

Этот параметр в основном идентичен к параметру aaSorting, но не может быть переопределено взаимодействием пользователя с стол. Это означает, что вы может иметь столбец (видимый или скрытый) который сортировка будет всегда быть навязанным первым - любая сортировка после что (от пользователя) будет тогда выполняется как требуется. Это может быть полезно для группировки строк.

Пример использования:

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

0 - номер вашей «несортируемой» строки (слева). (Таким образом, в этом примере первый и шестой столбец являются фиксированными)

Официальная документация

0 голосов
/ 12 декабря 2013

Вы можете определить функцию обратного вызова для поддержки порядка неизменяемых номеров в отдельном столбце:

$('#someId').dataTable({
        // ...
        "aoColumns": [
            // ...
            {"bSortable": false}, // set unsortable this column
            // ...
        ],
        fnDrawCallback: function(oSettings) {
            $(this).find('tbody tr').each(function(index) {
                $(this).find('td').eq(1).text(index + 1); // .eq([index of column])
            });
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...