簡體   English   中英

ASP / VB .NET格式化gridview的每一行?

[英]ASP/VB .NET Formatting every row of a 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)
        GridView1.Rows(i).Cells(0).Text = acc
  Next i

問題是此gridview有5個頁面,並且僅適用於當前頁面。 例如,

  1. 第一頁的初始加載將正確格式化
  2. 我單擊第3頁,此代碼將格式化第1頁,因此不會格式化第3頁
  3. 我單擊第1頁,代碼將格式化第3頁

因此,它基本上是在格式化當前頁面,而不是所選頁面。

我要么需要能夠每次格式化gridview的每一行,要么能夠弄清楚所選頁面並格式化該頁面。 我也不知道該怎么辦。

任何幫助,將不勝感激。

像這樣在數據列中使用格式化:

<asp:BoundField HeaderText="Date" DataField="SomeDate" DataFormatString="{0:MM/dd/yyyy}">

您使用邊界域嗎?

有一個名為DataFormatString的屬性,要獲取您想要將其設置為“ MM / dd / yyyy”的格式,那么您無需在后面的代碼中進行任何格式化

使用DataFormatString ,但不要忘記添加HtmlEncode =“ false”

<asp :BoundField DataField="DateColumn"
 DataFormatString="{0:MM/dd/yyyy}"
 HtmlEncode="false" />

您可以使用一些屬性在設計時或運行時格式化所需日期的列,它將對所有行進行格式化。

這是一個教程。 有一個可以使用的格式的表格。... http : //shawpnendu.blogspot.com/2009/04/how-to-format-gridview-rowscolumns-in.html

您要做的是使用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並綁定到該對象,您可以在那里格式化日期數據並返回一些業務對象。 與簡單的SqlDataSource相比,ObjectDataSource還允許更有效的分頁(我假設您正在使用的是它?)。

如果您只是在運行動態SQL查詢,則可以在那里格式化返回的數據(類似):

SELECT CONVERT(VARCHAR,CONVERT(DATETIME,OriginalDateValue,101),101)

有幫助嗎? 如果您需要ObjectDataSource的特定代碼,請這樣說。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM