簡體   English   中英

如何動態地將指定數量的文本框添加到gridview?

[英]How do I dynamically add specified number of textboxes to gridview?

下面的代碼允許用戶根據需要向gridview添加盡可能多的文本框行。

我們決定將用戶動態添加的行數限制為6。

我在網上搜尋了一些樣本,以尋找如何完成此事的樣本。

有誰知道需要對以下代碼進行哪些更改,以便用戶只能添加最多6個但不超過6個的新行?

提前謝謝

    Private Sub AddNewRow()
    Dim rowIndex As Integer = 0

    If ViewState("CurrentTable") IsNot Nothing Then
        Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
        Dim drCurrentRow As DataRow = Nothing
        If dtCurrentTable.Rows.Count > 0 Then
            For i As Integer = 1 To dtCurrentTable.Rows.Count
                Dim TextRefillNumber As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtRefillNumber"), TextBox)
                drCurrentRow = dtCurrentTable.NewRow()
                drCurrentRow("RowNumber") = i + 1

                dtCurrentTable.Rows(i - 1)("Col1") = TextRefillNumber.Text

                rowIndex += 1
            Next
            dtCurrentTable.Rows.Add(drCurrentRow)
            ViewState("CurrentTable") = dtCurrentTable

            grvStudentDetails.DataSource = dtCurrentTable
            grvStudentDetails.DataBind()

            Dim txn As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtRefillNumber"), TextBox)
            ' txn.Focus;
            txn.Focus()
        End If
    Else
        Response.Write("ViewState is null")
    End If
    SetPreviousData()
End Sub
Private Sub SetPreviousData()
    Dim rowIndex As Integer = 0
    If ViewState("CurrentTable") IsNot Nothing Then
        Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
        If dt.Rows.Count > 0 Then
            For i As Integer = 0 To dt.Rows.Count - 1
                Dim TextRefillNumber As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtRefillNumber"), TextBox)
                ' drCurrentRow["RowNumber"] = i + 1;

                grvStudentDetails.Rows(i).Cells(0).Text = Convert.ToString(i + 1)
                TextRefillNumber.Text = dt.Rows(i)("Col1").ToString()
                rowIndex += 1
            Next
        End If
    End If
End Sub
Protected Sub ButtonAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
    AddNewRow()
End Sub

注意:我添加了C#標記,因為我可以從C#轉換為VB.net

您應該對行有一個計數器。 當用戶添加一行時,計數器將增加。 如果用戶嘗試在counter >= limit時添加行,則不允許這樣做。

您應該有一個UserAddRowUserRemoveRow方法,這些方法將處理計數器的增加和減少。 這將提高可讀性可維護性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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