Gridview中的TimeSpan DataFormatString

时间:2011-01-16 03:52:19

标签: asp.net

我有一个带有来自linq查询的ObjectDataSource的gridview。

源的一个变量是一个时间跨度,我用DataField =“MyTimeSpanVariable”绑定一个boundfield。数据包含以秒和分钟为单位的时间,极少数以小时为单位。

数据以其原生格式显示正常但是当我将HtmlEncode =“false”DataFormatString =“{0:hh:mm:ss}”添加到aspx页面中的boundfield属性时,它会在MyGridView.Databind上崩溃( )线。我做错了什么?

感谢。

5 个答案:

答案 0 :(得分:4)

我有同样的问题!:
FormatException on DataFormatString="Mødetidspunkt er {0:H:mm}"

您不能使用两个冒号,因此请使用短时格式说明符。

DataFormatString="Time is {0:t}"
t is the equivalent of HH:mm
T is the equivalent of HH:mm:ss

请参阅"Standard DateTime Format Strings"

答案 1 :(得分:4)

我相信你需要摆脱第二个问题:'如果您使用的是C#。例如:

DataFormatString=@"Time is {0:H\:mm}";

答案 2 :(得分:3)

从aspx / ascx开始,这就像

HtmlEncode="false" DataFormatString="{0:mm\:ss}" 

答案 3 :(得分:3)

参见http://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx 方程式在Asp.Net MVC元数据中使用:

DisplayFormat(DataFormatString = "{0:hh\\:mm\\:ss}")

答案 4 :(得分:-1)

如果您愿意,可以尝试在Grid的RowDataBound事件上格式化您的字段。

例如:

Protected Sub YourGridView_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles YourGridView.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        If e.Row.DataItem("YourColName") Then
            'Do formatting
        End If
    End If
End Sub