Как отформатировать столбец даты в DataGrid из VB - PullRequest
1 голос
/ 31 марта 2011

У меня есть файл .aspx с сеткой данных:

<asp:DataGrid ID="Gifts"
AutoGenerateColumns="True"
runat="server" AllowSorting="True">
    </asp:DataGrid>

Файл .aspx.vb, связанный с ним, заполняет его объектом сетки данных.

Protected WithEvents Gifts As System.Web.UI.WebControls.DataGrid
Public GiftData As DataTable
Gifts.DataSource = New DataView(GiftData)
Gifts.DataBind()

Это все отлично работает. Однако я хочу отформатировать один из столбцов с определенным форматом даты. Есть ли способ сделать это в коде VB? Я знаю, что могу сделать это в .aspx, указав AutoGenerateColumns = "False", а затем явно определив столбцы, но я хочу сделать это в коде, так как это более перспективно для моего приложения.

1 Ответ

1 голос
/ 31 марта 2011

Вы можете сделать это в RowDataBound -Eventhandler:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
     If e.Row.RowType = DataControlRowType.DataRow Then
        'If the first column is a date
        e.Row.Cells(0).Text = String.Format("{0:D}", Date.Parse(e.Row.Cells(0).Text))
     End If
End Sub

Если вы действительно используете старую DataGrid, она работает почти так же.Вместо этого используйте DataGrid ItemDataBound -Event.

Protected Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
     If e.Item.ItemType = ListItemType.Item orelse e.Item.ItemType = ListItemType.AlternatingItem Then
        'If the first column is a date
        e.Item.Cells(0).Text = String.Format("{0:D}", Date.Parse(e.Item.Cells(0).Text))
     End If
End Sub
...