我正在使用tablesorter插件来排序我的表在一个MVC .NET应用程序。我的大部分列是字符串,我没有问题。没有数字的。事情是我的datetime列也被排序好像是字符串。他们得到这样排序:01/04/2009,02/02/2009,03/08/2009等。我从该视图中获取模型中的数据。
我的电话是默认的:
$("#table").tablesorter();
我试着指定dateformat没有运气:
$("#table").tablesorter({ dateFormat: 'dd/mm/yyyy'});
当我手动键入带有随机日期的静态表时,会发生奇怪的事情。它得到排序!但是我的数据来自一个DB调用,并被放入Model中,然后通过它创建并写入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.如果tablesorter也排序数字错误,这也是有效的。还有其他解析器以及百分比,IP地址等。看看源代码的末尾附近,它们会列在那里。
编辑:在查看源代码时,dateFormat选项似乎仅仅是查找“us”,“uk”,“dd / mm / yy”或“dd-mm-yy”。当你尝试“uk”会发生什么?