Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文本框插入Gridview_C#_Asp.net_Gridview_Textbox_Webforms - Fatal编程技术网

C# 将文本框插入Gridview

C# 将文本框插入Gridview,c#,asp.net,gridview,textbox,webforms,C#,Asp.net,Gridview,Textbox,Webforms,我有一个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.

我有一个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()
除了插入textbox 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单元格

目前,我根据需要返回数据,但文本框列显示为System.Web.UI.WebControls.Textbox。Adding.Text在本例中显示文本数据,但它以标签格式显示,这意味着您不能在其中输入任何内容

有人能告诉我如何以这种方式插入文本框吗

感谢您在gridview中定义Templatefield并在Templatefield中放置占位符控件


非常感谢。这终于按要求添加了文本框:但我现在的问题是文本框放在第一列下,而不是第三列。。。。。。我想我可能需要在代码中创建itemTemplate,我会看一下。这是正确的还是我遗漏了什么?再次感谢
<asp:GridView ID="GridView1" runat="server" >
   <Columns>
      <asp:TemplateField>
         <ItemTemplate>
              <asp:PlaceHolder ID="PlaceHolder_InputControl" runat="server" />
         </ItemTemplate>
       </asp:TemplateField>
   </Columns>
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