我正在使用 tablesorter 插件对 MVC .NET 应用程序中的表进行排序。我的大部分专栏都是字符串,我对它们没有任何问题。与数字无关。问题是我的日期时间列也像字符串一样进行排序。它们的排序方式如下:01/04/2009、02/02/2009、03/08/2009 等。我从该 View 中的模型获取数据。
我的电话是默认电话:
$("#table").tablesorter();
我尝试指定日期格式,但没有成功:
$("#table").tablesorter({
dateFormat: 'dd/mm/yyyy'});
当我手动输入带有随机日期的静态表时,奇怪的事情发生了。它得到排序!但是我的数据来自数据库调用并被放入模型中,然后我通过它进行处理并用数据写入 tr。
提前致谢。
编辑:这可能与我创建 tr 的方式有关吗?
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.Encode(item.date) %>
</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<% } %>
最佳答案
尝试将 Tablesorter 解析器添加到日期列中。 Tablesorter 附带了一个用于shortDate、usLongDate 和isoDate 的解析器。
$("#table").tablesorter({
headers: { colNum: { sorter: 'shortDate'} }
});
其中 colNum 是包含日期的列。我在 tablesorter 网站上找到的唯一示例是 here 。如果表排序器对数字进行错误排序,这也适用。还有其他解析器用于百分比、IP 地址等。查看源代码末尾附近,它们将列在那里。
编辑: 在查看源代码时,dateFormat 选项似乎只查找“us”、“uk”、“dd/mm/yy”或“dd-mm-yy”。当您尝试“uk”时会发生什么?
关于jquery - 使用 jquery tablesorter 对日期进行排序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091921/