【发布时间】:2015-05-18 17:29:46
【问题描述】:
我需要在网格视图中格式化日期时间以显示日期。在从 sql 提取期间,我不能只更改单个列的格式,因为代码使用 .net 生成的 SqlDataAdapter.Fill。我阅读了有关如何更改绑定字段中的日期格式的其他 stackoverflow 问题,而其他答案要求使用类似 gridview 的东西。如果我尝试仅键入并使用它,则智能感知未找到并且不出所料地给我一个无定义的编译错误的格式。我不能简单地更改 aaspx 中的属性,因为它是以编程方式生成的网格视图。
有没有办法枚举gridview中的列并检查列是否已经是日期时间类型(它们将从sql作为日期时间进入,排序已经正常工作,因此它们不会作为字符串进入) 并将它们的格式更改为日期?目前,当我尝试枚举它跳过的列时,因为在数据绑定期间gridview中的列数仍然为0。或者有没有人有一个更便宜的想法,这些是成千上万的行进来所以如果我可以为日期时间信息格式化列或整个网格视图,它可能会好得多。谢谢
编辑:我找到了一种方法,将其放入 gridview_RowDataBound
foreach (DataControlFieldCell cell in e.Row.Cells)
{
AutoGeneratedField field = cell.ContainingField as AutoGeneratedField;
if (field != null && field.DataType == typeof(DateTime))
cell.Text = DateTime.Parse(cell.Text).ToShortDateString();
}
【问题讨论】:
-
当您说“以编程方式生成”时,您的意思是 gridview 存在于 sapx 中并且正在自动生成列,或者 gridview 正在动态生成并添加到其他一些容器的
Controls属性?
标签: c# asp.net datetime gridview format