我已经在我的aspx页面上有一个asp.net表格控件,包含 asp.net TableRow对象;向ASP.NET表动态添加列 - 回发
我的目的是通过点击一些图像按钮动态添加列到这个表。 该表由几个TableRow对象组成,每个对象默认包含带有某个标签的ASP.NET TableCell。我试图通过单击图像按钮添加列,据说向该行的单元集合中添加一个新单元格。例如,如果我想添加包含特定行的下拉列表一栏,我做的:
DropDownList ddl = new DropDownList();
TableCell tableCell= new TableCell();
tableCell.Controls.Add(ddl);
tableRow.Cells.Add(tableCell);
的问题是,我永远不能超越加一列,因为每当我点击asp.net“ AddColumn“按钮,在我到达生命周期中的某个位置之前创建的”AddColumn“按钮,以及其单元集合。 我想过以某种方式保存会话中的行对象的副本,但我不认为 正确的时间点进行保存。
而且不管怎么说 - 是不是asp.net应该保持一切都在视图状态?请帮助并提供解决方案。我完全困惑。
的ASPX BTW看起来是这样的:
<asp:TableRow runat="server" ID="RequestorEmailRow">
<asp:TableCell runat="server" Text="...">
</asp:TableCell>
</asp:TableRow>
您必须在Page_Load中最新的每次回发中重新创建已添加的TableCells。在ViewState中保存创建的单元格的数量。为了避免使用DropDownLists的视图状态和事件处理问题,您还需要确保它们在每次回发时都获得相同的ID。 – 2011-06-01 09:22:24