【发布时间】:2010-09-20 00:56:27
【问题描述】:
我有一个非常简单的 ASP.Net 页面,它充当存储过程的前端。它只是运行程序并使用 gridview 控件显示输出:总代码不到 40 行,包括 aspx 标记。存储过程本身非常...易变。它有多种用途,输出格式会定期更改。
整个事情都很好,因为 gridview 控件并不真正需要关心存储过程返回哪些列:它只是在页面上显示它们,这正是我想要的。
但是,运行此操作的数据库在时间部分并不重要的地方都有许多日期时间列 - 它总是归零。我想要做的是控制gridview中日期时间列的格式,而不知道它们将是哪些列。每当结果中的列具有日期时间类型时,只需应用给定的格式字符串即可修剪时间组件。
我知道我可以在数据库中转换为 varchar,但我真的不想让开发人员关心查询中的格式,无论如何这属于表示级别。还有其他想法吗?
最终使用此代码以可接受(或至少改进)的方式使其工作:
Protected Sub OnRowDatabound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim d As DateTime
For Each cell As TableCell In e.Row.Cells
If Date.TryParse(cell.Text, d) AndAlso d.TimeOfDay.Ticks = 0 Then
cell.Text = d.ToShortDateString()
End If
Next cell
End If
End Sub
【问题讨论】:
标签: asp.net datetime gridview asp.net-2.0