簡體   English   中英

將文本框插入Gridview

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM