我在XtraGrid中有一个列,显示自插入记录以来经过的时间。我在服务器上计算并将时间作为字符串返回。
问题是它没有正确排序,请参阅图片9天是如何超过23天...
任何想法如何使排序更好地运作?
答案 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语句的一部分进行排序(我假设您从数据库中获取此信息)。你的另一个选择是编写你自己的比较函数,这将涉及将时间解析回某种时间跨度并对其进行排序。