【问题标题】:Add row dynamically to table in ASP.NET?将行动态添加到 ASP.NET 中的表?
【发布时间】:2023-03-26 00:20:04
【问题描述】:

我正在尝试将行动态添加到 ASP.NET 中的 System.Web.UI.WebControls.Table 控件。我发现了一些 sample code 可以满足我的要求,但它只添加了一行。

似乎表格行数不会从一个页面加载到下一个页面。用户应该能够根据需要添加任意多的行,我需要从每一行中捕获数据。

我错过了什么?代码如下。

<%@ Page Language="VB" %>
<script runat="server">

    Sub btnAddEmail_Click(ByVal Sender As Object, ByVal e As EventArgs)

        Dim tr As New TableRow
        Dim tcLabel As New TableCell
        Dim tcTextBox As New TableCell
        Dim newLabel As New Label
        Dim newTextBox As New TextBox

        Dim i As Integer = Table1.Rows.Count + 1

        newLabel.ID = "Email" + Convert.ToString(i)
        newLabel.Text = "Email" + Convert.ToString(i)

        newTextBox.ID = "txtEmail" + Convert.ToString(i)

        tcLabel.Controls.Add(newLabel)
        tcTextBox.Controls.Add(newTextBox)

        tr.Cells.Add(tcLabel)
        tr.Cells.Add(tcTextBox)

        Table1.Rows.Add(tr)

    End Sub

</script>

<form id="form1" runat="server">
<div>
    <asp:Button runat="server" Text="Add Email" ID="btnAddEmail"
        onclick="btnAddEmail_Click" />
    <asp:Table ID="Table1" runat="server">
        <asp:TableRow>
            <asp:TableCell>
                <asp:Label ID="Email1" runat="server" Text="Email1"></asp:Label></asp:TableCell>
            <asp:TableCell>
                <asp:TextBox ID="txtEmail1" runat="server"></asp:TextBox></asp:TableCell>
        </asp:TableRow>
    </asp:Table>
</div>
</form>

【问题讨论】:

    标签: asp.net vb.net system.web.ui.webcontrols


    【解决方案1】:

    ASP.NET 是无状态的——您需要在页面加载之间将所需的任何数据保存到 Session 变量中。

    您需要将 DataTable/DataSet 存储在会话变量中,并在“PageLoad”事件中将 Table1 的 Datasource 属性分配给该 DataSet。然后,在“Click”事件中,将该行添加到 Session 变量中的 DataSet。

    更新

    您也许可以在您希望通过回发保留数据的控件上设置ViewState="true"

    【讨论】:

    • 谢谢,这很有帮助,但我还没有“声誉”来投票给答案。 :) 我希望有一种简单的方法可以说,“在回发时保持此表中的行数和其中的数据。”某种配置选项,例如 AutoEventWireup=True,尽管我意识到这与事件处理程序有关。我将它用于一个非常简单的页面。
    猜你喜欢
    • 2011-03-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2011-06-12
    • 2018-05-23
    • 2014-09-06
    相关资源
    最近更新 更多