Gab*_*e G 20 asp.net-mvc jquery tablesorter
我正在使用tablesorter插件在MVC .NET应用程序中对表进行排序.我的大多数列都是字符串,我对它们没有任何问题.没有数字的.事情是我的日期时间列也被排序,好像它们是字符串.它们的排序方式如下:01/04/2009,02/02/2009,300/08/2009等.我从该视图中的模型中获取数据.
我的电话是默认电话:
$("#table").tablesorter();
我试着没有运气指定dateformat:
$("#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>
<% } %>
Ben*_*ler 26
尝试将Tablesorter解析器添加到日期列.Tablesorter附带了一个用于shortDate,usLongDate和isoDate的解析器.
$("#table").tablesorter({
    headers: { colNum: { sorter: 'shortDate'} }
});
其中colNum是包含日期的列.我在tablesorter网站上找到的唯一例子就是这里.如果tablesorter也将数字排序错误,这也有效.还有其他解析器,包括百分比,IP地址等.看看源代码的末尾,它们将被列在那里.
编辑: 在查看源代码时,dateFormat选项似乎只查找"us","uk","dd/mm/yy"或"dd-mm-yy".当你尝试"英国"时会发生什么?
fer*_*jsg 16
我遇到了同样的问题,我添加了一个名为datetime的自定义解析器:
$.tablesorter.addParser({
    id: "datetime",
    is: function(s) {
        return false; 
    },
    format: function(s,table) {
        s = s.replace(/\-/g,"/");
        s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1");
        return $.tablesorter.formatFloat(new Date(s).getTime());
    },
    type: "numeric"
});
然后,您只需将该格式应用于所需的列,就像Gabe G公开的那样(例如,要将此分类器分配给第一列,您应该执行以下操作:
$("#mytable").tablesorter( 
    {   dateFormat: 'dd/mm/yyyy', 
        headers: 
            {
                0:{sorter:'datetime'}
            } 
    } ); 
小智 8
您还可以在日期之前以数字格式(yyyymmdd)添加隐藏的span标记.此文本将首先出现并用于排序,但它将隐藏在视线之外,仅显示您想要的格式.
    <td><span style="display:none">20130923</span>23 September 2013</td>    
| 归档时间: | 
 | 
| 查看次数: | 28582 次 | 
| 最近记录: |