GridView日期/时间列条件格式

时间:2012-05-17 20:42:25

标签: asp.net gridview formatting

我有一个带有DateTime列的GridView。我的日期可能没有时间部分。当没有输入时间时,使用DataFormatString="{0:MM/dd/yyyy hh:mm tt}"将写入12:00 AM。有办法避免这种情况吗?也就是说,如果日期设置了一个时间,那么显示它,否则只显示日期?

2 个答案:

答案 0 :(得分:1)

如果没有特殊限制,则可以从服务器端将日期时间转换为字符串并返回所需数据,并在网格端告诉网格它是字符串值。

答案 1 :(得分:0)

您不能使用带有格式字符串的条件;你必须为GridView的ItemDataBound事件添加一个事件处理程序,并自己格式化:

void Grid_ItemDataBound(object sender, GridItemEventArgs e)
{
   var date = e.Item[<index>].Text;
   if (date.EndsWith(" 12:00 AM"))
       e.Item[<index>].Text = date.Replace(" 12:00 AM", "");
}

类似的东西。