如何在ASP.NET表中动态添加多行?
以下是迄今为止我掌握的代码:如何在ASP.NET表中动态添加多行?,asp.net,Asp.net,以下是迄今为止我掌握的代码: Protected Sub btnAddRow7_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAddRow7.Click Dim tableRow As New System.Web.UI.WebControls.TableRow Dim tableCell As New System.Web.UI.WebControls.TableCell Dim text
Protected Sub btnAddRow7_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAddRow7.Click
Dim tableRow As New System.Web.UI.WebControls.TableRow
Dim tableCell As New System.Web.UI.WebControls.TableCell
Dim textBox As New System.Web.UI.WebControls.TextBox
tableCell.Controls.Add(textBox)
tableRow.Cells.Add(tableCell)
tbl7.Rows.Add(tableRow)
End Sub
…但它仅动态添加一行。在第一次添加之后,更多地单击按钮不会添加更多行。知道为什么吗?更好的方法是?HtmlTable似乎没有任何类型的ViewState感知,因此可以在每次回发时生成所有行,或者使用asp:Table或asp:Repeater来代替。您可以在Page.Load中重建表。例如:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
rebuildMyTable()
End Sub
Private Sub rebuildMyTable()
If Me.ViewState("TableRowCount") Is Nothing Then Me.ViewState("TableRowCount") = 0
For i As Int32 = 0 To CInt(Me.ViewState("TableRowCount")) - 1
AddTableRow()
Next
End Sub
Private Sub AddTableRow()
Dim tableRow As New System.Web.UI.WebControls.TableRow
Dim tableCell As New System.Web.UI.WebControls.TableCell
Dim textBox As New System.Web.UI.WebControls.TextBox
tableCell.Controls.Add(textBox)
tableRow.Cells.Add(tableCell)
Me.MyTable.Rows.Add(tableRow)
End Sub
Protected Sub BtnAddRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddRow.Click
AddTableRow()
If Me.ViewState("TableRowCount") Is Nothing Then
Me.ViewState("TableRowCount") = 1
Else
Me.ViewState("TableRowCount") = CInt(Me.ViewState("TableRowCount")) + 1
End If
End Sub
这是因为按钮事件发生在Viewstate注册之后。
什么是tbl7?它是否启用了ViewState?对不起-tbl7是ASP代码中声明的表-这是后面的VB代码。是的,ViewState已启用。页面加载事件中有任何内容吗?我认为这可能是最好的解决方案…尽管这将导致一些非常复杂的问题。这一页将有14个左右的表格。无论如何,谢谢你的帮助-这是我需要开始的!