【发布时间】:2011-05-24 13:27:29
【问题描述】:
我正在使用模板字段在网格视图的单列中显示四个数据字段。数据字段之一是日期字段。我不想显示正常日期,而是想显示相对小时/天。 (例如:2 小时前/2 天前)。如何操作模板字段列中的日期字段。请提出建议。
谢谢。
【问题讨论】:
标签: c# asp.net gridview templatefield
我正在使用模板字段在网格视图的单列中显示四个数据字段。数据字段之一是日期字段。我不想显示正常日期,而是想显示相对小时/天。 (例如:2 小时前/2 天前)。如何操作模板字段列中的日期字段。请提出建议。
谢谢。
【问题讨论】:
标签: c# asp.net gridview templatefield
您可以使用 来操作在运行时绑定到列的数据。您甚至可以通过执行以下操作在代码隐藏中调用函数:
<%# this.MyFunction(Eval("Date Field Name")) %>
可能有更好的方法来做到这一点,但这在过去对我有用。请注意,Eval 返回一个object。
【讨论】:
如果其他视图/页面将使用该格式,您可能需要考虑将其放入业务服务层或某些实用程序函数中,以免在 UI 中隐藏/重复。
// Business Service
public IList<Person> GetAllActivePeople()
{
var people = _yourDataRepository.FindActive();
foreach(var p in people)
{
p.MyRelativeDateField = ConvertToRelativeHoursDays(p.MyDateField);
}
return people;
}
// probably better as a utility class if other dates of other objects can use this...
private string ConvertToRelativeHoursDays(DateTime someDate)
{
// implement formatting here
}
【讨论】: