Я использую таблицу, использующую s для получения данных. Это делается потому, что он захватывает информацию из базы данных, и для целей проектирования это было сделано именно так. Теперь я недавно получил tablesorter, чтобы работать отлично, но я не могу заставить его работать с датами, он сортирует строки по числу дней. Я использую формат dd-MMM-yyyy
(то есть 02-окт-2011). Я изменил исходный код, но это почти такая же концепция. Я попытался использовать addParser()
который поставляется с tablesorter, но мне не повезло.
Вот HTML:
<table class="tablesorter">
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<td id='101' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>20-Oct-2013</div></td>
<td id='201' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>21-Dec-2013</div></td>
<td id='301' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>22-Nov-2013</div> <img src="http://miniontours.yzi.me/loading.gif" height="12" width="12"/></td>
<td id='401' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>23-Oct-2013</div></td></tr>
<tr>
<td id='102' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>20-Sep-2013</div></td>
<td id='202' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>21-Aug-2013</div></td>
<td id='302' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>22-Jul-2013</div> <img src="http://miniontours.yzi.me/loading.gif" height="12" width="12"/></td>
<td id='402' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>23-Jun-2013</div></td>
</tr>
<tr>
<td id='103' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>20-Apr-2013</div></td>
<td id='203' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>21-Mar-2013</div></td>
<td id='303' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>22-Feb-2013</div> <img src="http://miniontours.yzi.me/loading.gif" height="12" width="12"/></td>
<td id='403' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>23-Jan-2013</div></td>
</tr><tr>
<td id='104' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>03-Jan-2013</div></td>
<td id='204' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>11-Oct-2013</div></td>
<td id='304' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>30-Jun-2013</div> <img src="http://miniontours.yzi.me/loading.gif" height="12" width="12"/></td>
<td id='404' contenteditable='true'><div class='boxes' contenteditable='true' maxLength='11' style='display:inline' vAlign='center'>12-Sep-2013</div></td>
</tr>
</tbody>
И вот JS, чтобы вызвать tablesorter, который я использую:
$('table').tablesorter({
// include zeba widgets
widgets: ['zebra'],
// initial sort
sortList: [[0, 0], [2, 0]]
});
Вот обновленный jsFiddle: http://jsfiddle.net/Q22Yj/9/ Просто пойдите и попробуйте сортировать его и посмотреть, как ни одна из дат не будет правильно отсортирована
В соответствии с документацией вы можете указать формат даты в конструкторе для сортировщика таблиц для таких столбцов.
headers: {
0: {
sorter: "shortDate",
dateFormat: "dd-MMM-yyyy"
},
1: {
sorter: "shortDate",
dateFormat: "dd-MMM-yyyy"
},
2: {
sorter: "shortDate",
dateFormat: "dd-MMM-yyyy"
},
3: {
sorter: "shortDate",
dateFormat: "dd-MMM-yyyy"
},
},
В этом случае, поскольку вы используете действительные разделители, вы также можете:
headers: {
0: {
sorter: "shortDate"
},
1: {
sorter: "shortDate"
},
2: {
sorter: "shortDate"
},
3: {
sorter: "shortDate"
},
},
<div>
с датой, что приводит к неправильной сортировке. Проверьте это jsFiddle: jsfiddle.net/Q22Yj/8 любая идея, как это можно решить ??
updateCell
для отредактированных ячеек, чтобы они правильно сортировались ( вот пример из редактируемого виджета).