动态向Datagrid中添加列

步骤:
    一.定义Template Column
        比如我们要定义一个如下的TemplateCoumn:
<asp:TemplateColumn>
   <ItemTemplate>
       <asp:Label ID='lblDate' Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.date") %>'>
       </asp:Label>
   </ItemTemplate>
</asp:TemplateColumn>
        则应当定义一个类DataGridDateTemplate,代码如下:
                          Public Class DataGridDateTemplate
    Implements ITemplate
 
    'Label 的ID
    Private _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.LightGreen

        Dim 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()

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

kongdir

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值