我有一个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单元格中 .
目前我根据需要返回数据,但Textbox Col显示为System.Web.UI.WebControls.TextBox . 添加.Text显示文本(在本例中为数据),但它以标签格式显示,这意味着您无法在其中输入任何内容 .
任何人都可以建议我如何以这种方式插入文本框?
谢谢
1 回答
在gridview中定义
Templatefield
并在Templatefield
中放置一个PlaceHolder
控件 .使用
RowCreated event
动态添加文本框: