Gridview - 在TemplateField中操作数据项

时间:2011-05-24 13:27:30

标签: c# asp.net gridview templatefield

我使用模板字段在gridview的单个列中显示四个数据字段。其中一个数据字段是日期字段。我希望显示相对小时/天,而不是显示正常日期。 (如:2小时前/ 2天前)。如何操作模板字段列中的日期字段。请建议。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用<%#Eval(“Date Field”)%>操作运行时绑定到列的数据。您甚至可以通过执行以下操作来调用代码隐藏中的函数:

<%# this.MyFunction(Eval("Date Field Name")) %>

可能有更好的方法,但这在过去对我有用。请注意,Eval会返回object

答案 1 :(得分:0)

如果其他视图/页面将使用该格式,您可能需要考虑将其放在业务服务层或某个实用程序功能中,以便它不会在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
}