如何在jqGrid中对“days ago”格式化日期进行排序?

时间:2012-10-18 17:01:15

标签: date sorting jqgrid format days

如何在jqGrid中对“days ago”格式化日期进行排序?当我对网格进行排序时,它无法区分“11小时前”和“1天前”。因此,“1天前”排序在顶部,而不是“11小时前”。

**请参考网格图片。


enter image description here

我的jqGrid有以下代码。 recommendationData 是JSON。 已发布列是日期。

$("#tblRecommendationList").jqGrid({
    data: recommendationData,
    datatype: 'local',
    colModel: [
        { name: 'Title', label: 'Title', width: 210, resizable: true },
        { name: 'Channel', label: 'Content Type', width: 120, resizable: true },
        { name: 'StatusNumber', label: 'Status', width: 120, resizable: true,
            formatter: GetStatusCode },
        { name: 'Posted', label: 'Posted', width: 120, resizable: true },
        { name: 'RecordId', label: 'RecordId', hidden: true }
    ],
    loadtext: 'Loading...',
    loadui: 'block',
    emptyDataText: "No Recommendations to display",
    shrinkToFit: true,

日期以下列方式传递。

    ...
        returnList =
            (
                from i in responseList
                select new InQuiraRecommendation
                {
                    StatusNumber = i.statusnumber,
                    Title = i.title,
                    Text = i.text,
                    Posted = GetDaysAgo(i.dateadded),
                    CaseNumber = i.casenumber,
                    Priority = i.priority,
                    Channel = i.channel,
                    RecordId = i.recordid,

                }
            ).ToList();
    }
    return returnList;
}

GetDaysAgo()将“2012-09-13 07:00:00 Etc / GMT”日期格式更改为“Days ago”格式。

2 个答案:

答案 0 :(得分:1)

我将'dateadded'添加到您的InQuiraRecommendation类中,并将其作为网格中的隐藏字段包含在内,然后将其用作排序列。

答案 1 :(得分:1)

问题始于datatype: 'local'与服务器上准备的数据一起使用。如果您使用datatype: 'json'服务器将负责数据的排序,您可以将正确排序的数据返回给jqGrid。

另一种方法是实现GetDaysAgo方法,该方法将以ISO 8601格式发布的日期转换为“11小时前”或“1天前”的文本,客户端的 作为JavaScript代码。因此,您可以使用custom formatter(和unformatter)来显示数据。

还有一个选项是为sorttype列定义作为功能定义自定义'Posted'属性。该函数可以返回例如而不是的文本“11小时前”或“1天前”用于按列排序的小时数。

Here是第一个自定义排序参考,here您会找到一些可以帮助您的代码示例。如果要创建具有可排序字符串的隐藏列(例如ISO 8601),则可以简化自定义排序的实现(作为函数实现sorttype)。在sorttype函数内部,您可以访问sorttype的第二个参数的行的任何其他数据(有关详细信息,请参阅here)。作为'Posted'函数的结果,您可以返回{8}的{8}的{8}表示(来自隐藏列)。