because you have to remember to re-create the rows you created in the previous postbacks

解决方案 »

  1.   

    no,
    我重新写了一个过程
    变量名也不一样,
    结果也如此,
    saucer(思归, MS .NET MVP)
    谢谢,问题出在那里?????
      

  2.   

    use a DataTable to keep track of your changes, for example:
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Data" %>
    <script runat="Server">void CreateTable()
    {
      TableN.Controls.Clear();
      if (ViewState["TableState"] != null)
      {
    DataTable dt = (DataTable)ViewState["TableState"];
    foreach (DataRow dr in dt.Rows)
    {
    TableRow tr = new TableRow();
       foreach (DataColumn dc in dt.Columns)
    {
    TableCell tc = new TableCell();
    tc.Text = dr[dc].ToString();
    tr.Cells.Add(tc);
    }   TableN.Rows.Add(tr);
    }
      } 
    }void Page_Load(Object o, EventArgs e)
    {
      if (ViewState["TableState"] != null)
      {
    CreateTable();
      }
    }void AddNewRow(Object o, EventArgs e)
    {  DataTable dt;
      if (ViewState["TableState"] == null)
      {
    dt = new DataTable();
    dt.Columns.Add("Column1",typeof(string));
    dt.Columns.Add("Column2",typeof(string));
    //..... ViewState["TableState"] = dt;
      }
      else
    dt = (DataTable)ViewState["TableState"];  DataRow dr = dt.NewRow();
      dr["Column1"] = "1:" + DateTime.Now.ToString();
      dr["Column2"] = "2:" + DateTime.Now.ToString();
      dt.Rows.Add(dr);
      CreateTable();
    }
    </script>
    <form runat="server">
     <asp:Table id="TableN" runat="server" EnableViewState="false"/>
     <asp:Button id="btn" runat="server" Text="AddNew" OnClick="AddNewRow" />
     <asp:Button id="btn2" runat="Server" Text="Submit" />
    </form>
      

  3.   

    table
    没有保存自己的状态,你需要自己写保存代码,用ViewState就可以了,上面的说的很对
    我是接分的,多给点分吧!