问题描述
|
我正在使用模板字段在gridview的单个列中显示四个数据字段。数据字段之一是日期字段。我不想显示正常日期,而是要显示相对小时/天。 (例如:2小时前/ 2天前)。我如何操作模板字段列内的日期字段。请提出建议。
谢谢。
解决方法
您可以使用<%#Eval(\“ Date Field \”)%>在运行时操作绑定到该列的数据。您甚至可以通过执行以下操作在代码背后调用函数:
<%# 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
}