ASP/VB.NET格式化gridview的每一行?
我有一个Gridview,其中一行有一个时间戳。当我从数据库中读取数据时,数据的格式是(mm/dd/yyyy hh:mm:ss)。我已经找到了如何按照我想要的方式进行格式化,即(mm/dd/yyyy)和(hh:mm:ss)的删除,代码如下:ASP/VB.NET格式化gridview的每一行?,.net,asp.net,vb.net,gridview,.net,Asp.net,Vb.net,Gridview,我有一个Gridview,其中一行有一个时间戳。当我从数据库中读取数据时,数据的格式是(mm/dd/yyyy hh:mm:ss)。我已经找到了如何按照我想要的方式进行格式化,即(mm/dd/yyyy)和(hh:mm:ss)的删除,代码如下: Dim numrows2 = GridView1.Rows.Count For i = 0 To numrows2 - 1 Dim acc = Left(GridView1.Rows(i).Cells(0).Text, 10)
Dim numrows2 = GridView1.Rows.Count
For i = 0 To numrows2 - 1
Dim acc = Left(GridView1.Rows(i).Cells(0).Text, 10)
GridView1.Rows(i).Cells(0).Text = acc
Next i
问题是这个gridview大约有5个页面,这只适用于当前页面。比如说,
如果您有任何帮助,我们将不胜感激。您可以在设计时或运行时使用某些属性为列设置所需日期的格式,并且它将对所有行进行设置 这里有一个关于它的教程。有一个很好的格式表,你可以使用。。。。
您可以使用某些属性在设计时或运行时为列设置所需日期的格式,它将对所有行进行设置 这里有一个关于它的教程。有一个很好的格式表,你可以使用。。。。 是否使用边界字段 有一个名为DataFormatString的属性,要获取所需的格式,请将其设置为“MM/dd/yyyy”,然后您根本不需要在代码隐藏中进行任何格式化是否使用boundfield
有一个名为DataFormatString的属性,要获取所需的格式,请将其设置为“MM/dd/yyyy”,然后您根本不需要在代码中进行任何格式化
<asp:BoundField HeaderText="Date" DataField="SomeDate" DataFormatString="{0:MM/dd/yyyy}">
在数据列中使用如下格式:
<asp:BoundField HeaderText="Date" DataField="SomeDate" DataFormatString="{0:MM/dd/yyyy}">
您要做的是使用RowDataBound事件并在该点执行数据绑定。DateTime对象的ToString方法可以根据所需的格式代码进行重写。这样做你可以这样做:
Private Sub FormatMyGridView _
(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
Handles gvMyGridView.RowDataBound
Dim drItems As DataRow
' Grid Column Layout (Handy for formatting multiple items)
' 0 - View Details Hyperlink
' 1 - Id
' 2 - Department #
' 3 - Request Type
' 4 - Employee Number
' 5 - Employee Name
' 6 - Status
' 7 - Effective Date
If e.Row.RowType = DataControlRowType.DataRow Then
drRequest =DirectCast(e.Row.DataItem, System.Data.DataRowView).Row
e.Row.Cells(7).Text = drItems.MyDateField.ToString("MM/dd/yyyy")
End If
End Sub
您要做的是使用RowDataBound事件并在该点执行数据绑定。DateTime对象的ToString方法可以根据所需的格式代码进行重写。这样做你可以这样做:
Private Sub FormatMyGridView _
(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
Handles gvMyGridView.RowDataBound
Dim drItems As DataRow
' Grid Column Layout (Handy for formatting multiple items)
' 0 - View Details Hyperlink
' 1 - Id
' 2 - Department #
' 3 - Request Type
' 4 - Employee Number
' 5 - Employee Name
' 6 - Status
' 7 - Effective Date
If e.Row.RowType = DataControlRowType.DataRow Then
drRequest =DirectCast(e.Row.DataItem, System.Data.DataRowView).Row
e.Row.Cells(7).Text = drItems.MyDateField.ToString("MM/dd/yyyy")
End If
End Sub
最好的方法可能是使用ObjectDataSource并绑定到它,您可以在那里格式化日期数据并返回一些业务对象。ObjectDataSource还允许比简单的SqlDataSource更高效的分页(我假设您正在使用它) 如果您只是在运行动态SQL查询,您可以在那里格式化返回的数据(类似于: 选择CONVERT(VARCHAR,CONVERT(DATETIME,OriginalDateValue,101),101)
这有用吗?如果您需要一个ObjectDataSource的特定代码,就这么说。最好的方法可能是使用ObjectDataSource并绑定到它,您可以在那里格式化日期数据并返回一些业务对象。ObjectDataSource还允许比简单的SqlDataSource更高效的分页(我假设您正在使用它) 如果您只是在运行动态SQL查询,您可以在那里格式化返回的数据(类似于: 选择CONVERT(VARCHAR,CONVERT(DATETIME,OriginalDateValue,101),101)
这有用吗?如果您需要ObjectDataSource的特定代码,只需说出来。使用DataFormatString,但不要忘记添加HtmlEncode=“false”:
<asp :BoundField DataField="DateColumn"
DataFormatString="{0:MM/dd/yyyy}"
HtmlEncode="false" />
使用数据格式字符串,但不要忘记添加HtmlEncode=“false”:
<asp :BoundField DataField="DateColumn"
DataFormatString="{0:MM/dd/yyyy}"
HtmlEncode="false" />
附加的链接klablanche比我的示例显示得好得多附加的链接klablanche比我的示例显示得好得多