<asp:TemplateColumn>
<ItemTemplate>
<asp:Label ID='lblDate' Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.date") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
Public Class DataGridDateTemplate
Implements ITemplate'Label 的IDPrivate _lblDateID As String
Public Property lblDateID() As String
Get
lblDateID = _lblDateID
End Get
Set(ByVal Value As String)
_lblDateID = Value
End Set
End Property'初始化,效果:ID='lblDate' Runat="server"
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
'lblDate
Dim lblDate As New Label
lblDate.ID = lblDateID
lblDate.Attributes.Add("runat", "server")
AddHandler lblDate.DataBinding, AddressOf LblDate_DataBinding
container.Controls.Add(lblDate)End Sub'数据绑定,效果:Text='<%# DataBinder.Eval(Container, "DataItem.date") %>'Private Sub LblDate_DataBinding(ByVal sender As Object, ByVal e As System.EventArgs)
Dim lb As Label
lb = CType(sender, Label)
Dim container As DataGridItem
container = CType(lb.NamingContainer, DataGridItem)
lb.Text = DataBinder.Eval(container.DataItem, "date")
End Sub
End Class
二.向Datagrid中添加自己定义的TemplateColumn,(一般在Page_Load中写)
Dim col_date As TemplateColumn
col_date = New TemplateColumn
col_date.HeaderText = "Header Text"
col_date.HeaderStyle.BackColor = Color.LightGreenDim item_date As rms.DataGridDateTemplate
item_date = New DataGridDateTemplate
item_date.lblDateID = "lblDate"
col_date.ItemTemplate = item_date
dgdMain.Columns.Add(col_date)
注意:必须在每次PageLoad的时候添加动态的TemplateColumn,即在Postback的时候也要调用上面的代码。
三.数据绑定,在需要重新绑定数据的时候调用以下代码
dgdMain.DataSource = <data source>
dgdMain.DataBind()