JQuery Tablesorter - вид столбцом, <вводившим> элементы

У меня есть таблица как это:

|   Update   |   Name  |  Code      | modification date |
|            |   name1 | code1      | 2009-12-09        |
|            |   name2 | otehercode | 2007-09-30        | 

Где столбец Update содержит флажки .

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

Флажок может быть проверен по умолчанию, неконтролируем по умолчанию или отключен (disabled='disabled' как input атрибут).

Я использую Tablesorter JQuery для сортировки моих таблиц. И я хотел бы иметь возможность отсортировать по столбцу, содержащему флажки. Как это возможно (я мог передать некоторые дополнительные атрибуты моему input элемент, возможно, если это помогло бы...)?
Я должен записать свой собственный синтаксический анализатор для обработки этого?

8
задан kender 15 December 2009 в 21:32
поделиться

2 ответа

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

<td>
    <span class="hidden">1</span>
    <input type="checkbox" name="x" value="y">
</td>

При необходимости вы можете прикрепить событие к флажку, чтобы оно изменяло содержимое предыдущего брата (диапазона) при установленном / снятии флажка:

$(document).ready(function() {

    $('#tableid input').click(function() {
         var order = this.checked ? '1' : '0';
         $(this).prev().html(order);
    })

})

Примечание: я не проверял код, поэтому в нем могут быть ошибки.

16
ответ дан 3 November 2019 в 12:49
поделиться

Вы можете добавить собственный синтаксический анализатор в TableSorter, что-то вроде этого:

 $.tablesorter.addParser({ 
    // set a unique id 
    id: 'input', 
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) { 
        // Here we write custom function for processing our custum column type 
        return $("input",$(s)).val() ? 1 : 0; 
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 

А затем использовать его в своей таблице

$("table").tablesorter(headers:{0:{sorter:input}});
1
ответ дан 3 November 2019 в 12:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: