【发布时间】:2012-05-18 21:30:30
【问题描述】:
我有一个带有 DateTime 列的 GridView。我的日期可能没有时间部分。如果没有输入时间,使用 DataFormatString="{0:MM/dd/yyyy hh:mm tt}" 将写入 12:00 AM。有没有办法避免这种情况?也就是说,如果日期有时间设置,则显示,否则只显示日期?
【问题讨论】:
标签: asp.net gridview formatting
我有一个带有 DateTime 列的 GridView。我的日期可能没有时间部分。如果没有输入时间,使用 DataFormatString="{0:MM/dd/yyyy hh:mm tt}" 将写入 12:00 AM。有没有办法避免这种情况?也就是说,如果日期有时间设置,则显示,否则只显示日期?
【问题讨论】:
标签: asp.net gridview formatting
如果没有特殊限制,从服务器端你可以将日期时间转换为字符串并返回所需的数据,在网格端告诉网格它是一个字符串值。
【讨论】:
您不能使用带有格式字符串的条件;您必须为 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", "");
}
类似的东西。
【讨论】: