向ASP.NET表动态添加列-回发
我在我的aspx页面上有一个asp.net表控件,包含 net表格行对象 我的目的是通过单击一些图像按钮来动态地将列添加到此表中。 该表由多个TableRow对象组成,默认情况下,每个对象都包含一个带有某些标签的ASP.NET TableCell。我试图通过单击image按钮来添加列,假设是向行的cell集合添加一个新的单元格。例如,如果要添加包含特定行下拉列表的列,我会:向ASP.NET表动态添加列-回发,asp.net,viewstate,xmltable,Asp.net,Viewstate,Xmltable,我在我的aspx页面上有一个asp.net表控件,包含 net表格行对象 我的目的是通过单击一些图像按钮来动态地将列添加到此表中。 该表由多个TableRow对象组成,默认情况下,每个对象都包含一个带有某些标签的ASP.NET TableCell。我试图通过单击image按钮来添加列,假设是向行的cell集合添加一个新的单元格。例如,如果要添加包含特定行下拉列表的列,我会: DropDownList ddl = new DropDownList(); TableCell
DropDownList ddl = new DropDownList();
TableCell tableCell= new TableCell();
tableCell.Controls.Add(ddl);
tableRow.Cells.Add(tableCell);
问题是,我永远无法超越一个添加的列,因为每当我单击我创建的asp.net“AddColumn”按钮时,在我到达生命中某个地方的处理程序之前
循环TableRow对象及其单元格集合。
我曾考虑过在会话中保存行对象的副本,但我想不起来
在正确的时间点进行保存
不管怎么说,asp.net不应该让一切都保持在viewstate中吗?请帮助并提供解决方案。我完全糊涂了
ASPX btw看起来像这样:
<asp:TableRow runat="server" ID="RequestorEmailRow">
<asp:TableCell runat="server" Text="...">
</asp:TableCell>
</asp:TableRow>
ASP.NET viewstate仅存储控件的值,而不存储控件本身的存在。viewstate在Page\u Init
和Page\u Load
之间反序列化。如果动态添加,ASP.NET viewstate仅存储控件的值,而不存储控件本身的存在。viewstate在Page\u Init
和Page\u Load
之间反序列化。如果动态添加,则必须在每次回发时最新加载页面时重新创建已添加的TableCell。在ViewState中保存创建的单元格数。为了避免DropDownList的viewstate和事件处理问题,您还必须确保它们在每次回发时获得相同的ID。您必须在每次回发时以最新的页面加载重新创建已添加的TableCell。在ViewState中保存创建的单元格数。为了避免DropDownList的viewstate和事件处理问题,您还必须确保它们在每次回发时都获得相同的ID。page_init解决方案听起来不错,但您能否详细说明我应该做什么?@user181218:有关动态控制方式的更多信息,请参阅。使用它是一种痛苦;如果我是你,我会改为查看GridView控件。page_init解决方案听起来不错,但你能详细说明我应该做什么吗?@user181218:有关动态控件方式的更多信息,请参阅。使用它是一种痛苦;如果我是你,我会改为签出GridView控件。