我正在尝试以编程方式将行添加到asp.net中的服务器端表。我有一个按钮,在click事件处理程序中我有:
TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Controls.Add(new TextBox());
row.Cells.Add(cell);
myServersideTable.Rows.AddAt(myServersideTable.Rows.Count - 1, row);
一切都很好,代码在第一次单击按钮并添加新行时起作用。
但是,所有后续按钮单击都不会添加新行。不会抛出任何错误。
为什么会发生这种情况?
答案 0 :(得分:2)
由于Http
协议的无状态特性,您无法做到这一点。有关详细信息,请阅读MSDN中的ASP.NET页面生命周期。
答案 1 :(得分:2)
您正在动态添加一行,因此当您回发时,您将不得不再次重新创建控件。
在这种情况下,您正在使用表格,并且在第一次按钮点击时添加了行,因此当您再次单击时,您将不得不再次重新创建上一行,再为当前单击重新创建一行