[英]Insert textbox into Gridview
我有一個Gridview,其數據源設置為DataTable。 由於所需的數據未保存在數據庫中,因此完成了此操作。 以這種方式生成兩列。 我需要的是在第三列中有一個文本框,以便用戶可以輸入其評論等。
我的代碼是
Dim dt As DataTable = New DataTable
Dim row As DataRow
' Generate Columns
dt.Columns.Add("Col One")
dt.Columns.Add("Col Two")
dt.Columns.Add("Textbox Col")
' Populate rows with required data
row = dt.NewRow
row.Item("Col One") = SomeData
row.Item("Col Two") = SecondaryData
row.Item("Textbox Col") = InsertTextbox("data")
' Add row to DataTable
dt.Rows.Add(row)
gvData.DataSource = dt
gvData.DataBind()
上面的代碼完全符合我的要求,除了插入文本框(InsertTextbox)時。 文本框代碼是
Private Function InsertTextbox(ByVal TBText As String) As TextBox
Dim tbox As TextBox = New TextBox
With tbox
.Width = 100
.Height = 25
.Text = TextboxText
.ID = TextboxText
End With
gvData.Controls.Add(txtbox)
Return txtbox
End Function
上面的代碼已更改了幾次,以查看如何將文本框插入到gridview單元中。
目前,我已按要求取回數據,但文本框Col顯示為System.Web.UI.WebControls.TextBox。 添加.Text會顯示文本(在本例中為數據),但會以標簽格式顯示,這意味着您無法在其中輸入任何內容。
誰能建議我如何以這種方式插入文本框?
謝謝
在gridview中定義一個Templatefield
並將PlaceHolder
控件放在Templatefield
。
<asp:GridView ID="GridView1" runat="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder_InputControl" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
使用RowCreated event
動態添加文本框:
Protected Sub GridView1_RowCreated(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim pc1 As PlaceHolder = DirectCast(e.Row.Cells(0).Controls(1), PlaceHolder)
Dim tb As TextBox = New TextBox
With tb
.Width = 100
.Height = 25
.Text = TextboxText
.ID = TextboxText
End With
pc1.Controls.Add(tb)
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.