加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 以编程方式将Textbox TemplateField列添加到GridView

发布时间:2020-12-16 04:16:16 所属栏目:asp.Net 来源:网络整理
导读:如何从代码后面向GridView添加TextBox列? 解决方法 使用 TemplateField并将TextBox添加到ItemTemplate / EditItemTemplate. ItemTemplate asp:TextBox ID="TxtFirstName" runat="server" Text='%# Bind("FirstName") %'/asp:TextBox/ItemTemplate 您可以在a
如何从代码后面向GridView添加TextBox列?

解决方法

使用 TemplateField并将TextBox添加到ItemTemplate / EditItemTemplate.
<ItemTemplate>
    <asp:TextBox ID="TxtFirstName" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox>
</ItemTemplate>

您可以在aspx上绑定它,如上例或GridView.RowDataBound中所示:

Private Sub GridView1_RowDataBound(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow
            Dim dr As DataRow = DirectCast(DirectCast(e.Row.DataItem,DataRowView).Row)
            Dim TxtFirstName As TextBox = DirectCast(e.Row.FindControl("TxtFirstName"),TextBox )
            TxtFirstName.Text = dr("FirstName").ToString
    End Select
End Sub

编辑:这是一个关于如何动态添加TemplateField的简单示例:

Protected Sub Page_Load(ByVal sender As Object,ByVal e As EventArgs) Handles MyBase.Load
    If Not IsPostBack Then
        Dim txtColumn As New TemplateField
        txtColumn.ItemTemplate = New TextColumn
        Me.GridView1.Columns.Add(txtColumn)
    End If
End Sub

Class TextColumn
    Implements ITemplate

    Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
        Dim txt As New TextBox
        txt.ID = "MyTextBox"
        container.Controls.Add(txt)
    End Sub
End Class

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.templatefield.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读