按时间打开正确排序

时间:2011-07-28 16:42:29

标签: .net sorting datagrid devexpress

我在XtraGrid中有一个列,显示自插入记录以来经过的时间。我在服务器上计算并将时间作为字符串返回。

问题是它没有正确排序,请参阅图片9天是如何超过23天...

Sort Problem

任何想法如何使排序更好地运作?

2 个答案:

答案 0 :(得分:2)

解决这个问题的一种方法是将数据库中的值作为标记存储在int64中,因此您可以在服务器端进行排序,然后在应用程序端,从Ticks创建TimeSpans,您可以处理{ {3}}显示它你想要的,确保你的列设置为对Value而不是DisplayText进行排序。

实施例

在GridView场所的CustomDisplayText事件中

TimeSpan span = TimeSpan.FromTicks(e.Value);
e.DisplayText = string.Format("{0} days {1} hours {2} minutes", span.Days, span.Hours, span.Minutes);

答案 1 :(得分:0)

您可以在服务器上将其作为SQL语句的一部分进行排序(我假设您从数据库中获取此信息)。你的另一个选择是编写你自己的比较函数,这将涉及将时间解析回某种时间跨度并对其进行排序。