C# 如何通过单击按钮添加新的ASP.NET表格行?

C# 如何通过单击按钮添加新的ASP.NET表格行?,c#,asp.net,C#,Asp.net,我正在使用asp.net[c#] 我的问题是关于添加新行;如果我单击该按钮(就像每次单击该按钮一样,它将添加新行)。。 我认为做这件事很容易。。但事实并非如此。有些东西不见了,我不知道是什么 我的代码是[Default3.aspx]: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> <!DOCTYPE html PUBLIC

我正在使用asp.net[c#]

我的问题是关于添加新行;如果我单击该按钮(就像每次单击该按钮一样,它将添加新行)。。 我认为做这件事很容易。。但事实并非如此。有些东西不见了,我不知道是什么

我的代码是[Default3.aspx]:

<%@ Page Language="C#" AutoEventWireup="true"
    CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div align="center">     

<asp:Table ID="Table1" runat="server">
    <asp:TableRow>
        <asp:TableCell style="border-style:solid" >
           <asp:Label ID="Label1" runat="server" Text="LABEL = 1 ">
           </asp:Label>
        </asp:TableCell>
        <asp:TableCell style="border-style:solid" >
           <asp:Label ID="Label2" runat="server" Text="LABEL = 2 ">
           </asp:Label>
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow>
        <asp:TableCell style="border-style:solid" >
           <asp:Label ID="Label3" runat="server" Text="LABEL = 3 ">
           </asp:Label>
        </asp:TableCell>
        <asp:TableCell style="border-style:solid" >
           <asp:Label ID="Label4" runat="server" Text="LABEL = 4 ">
           </asp:Label>
        </asp:TableCell>
    </asp:TableRow>
</asp:Table>

<asp:Button ID="Button1" runat="server" Text="Add More" 
        onclick="Button1_Click" />
</div>
</form>

</body>
</html>
我不知道是什么问题。。我甚至给每个控件一个ID。。我尝试了其他的方法,但没有成功


如果有人能帮我的话,请。。我觉得我遗漏了一些重要的东西,但我不知道它是什么。

您需要保持控件(表)的状态


请参见此处对一个非常类似问题的清晰解释

,如中共享的问题所示,请按照以下步骤操作:

  • 创建表行的全局列表,类似于:

    List<TableRow> TableRows
    
  • OnInit
    方法中,只需将所有行添加到表中:

    foreach ( TableRow row in TableRows )
    {
        Table1.Rows.Add(row);
    }
    

  • 它将解决您的问题。

    您只需使用以下命令即可添加行:

    TableRow row1=new TableRow();
    TableRows.add(row1);
    
    但问题是:

  • 点击按钮,一行被添加到表中
  • 再次单击同一按钮,则已创建的第一行不再存在,因为ASP.NET是无状态的

  • 解决方案:确保每次单击按钮时,您已经创建的行数据都存在。

    您能为我简化一下吗。。我一点也不懂。。[如果您不介意的话]我该怎么做才能使我的示例正常工作?Getting error-foreach语句不能对table类型的变量进行操作,因为table不包含getNumerator的公共定义。
    foreach ( TableRow row in TableRows )
    {
        Table1.Rows.Add(row);
    }
    
    TableRow row1=new TableRow();
    TableRows.add(row1);