У меня есть таблица как это:
| Update | Name | Code | modification date |
| | name1 | code1 | 2009-12-09 |
| | name2 | otehercode | 2007-09-30 |
Где столбец Update содержит флажки .
Начальное состояние флажка определяется прежде, чем представить таблицу, но после того, как строки выбираются от базы данных (это основано на наборе условий на серверной стороне).
Флажок может быть проверен по умолчанию, неконтролируем по умолчанию или отключен (disabled='disabled'
как input
атрибут).
Я использую Tablesorter JQuery для сортировки моих таблиц. И я хотел бы иметь возможность отсортировать по столбцу, содержащему флажки. Как это возможно (я мог передать некоторые дополнительные атрибуты моему input
элемент, возможно, если это помогло бы...)?
Я должен записать свой собственный синтаксический анализатор для обработки этого?
Добавьте скрытый диапазон непосредственно перед вводом и включите в него текст (который будет использоваться для сортировки столбца). Что-то вроде:
<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);
})
})
Примечание: я не проверял код, поэтому в нем могут быть ошибки.
Вы можете добавить собственный синтаксический анализатор в 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}});