aspx看起来像这样:
<asp:Panel ID="MedChangeScroll" CssClass="table-responsive scrollBlock" runat="server">
<asp:Table ID="MedChangeTable" CssClass="table table-striped table-hover table-bordered" runat="server"></asp:Table>
</asp:Panel>
<asp:Button ID="EnableAddMedChangeBtn" runat="server" CssClass="btn btn-success" Text="Add Med Change" OnClick="enableAddMedChange" />
<asp:Button ID="CancelAddMedChangeBtn" runat="server" Style="display: none;" CssClass="btn" Text="Cancel" OnClick="cancelAddMedChange" />
所有内容都放在更新面板中。单击EnableAddMedChangeBtn,我运行以下命令:
public void enableAddMedChange(object sender, EventArgs e)
{
TableRow tableRow = new TableRow();
MedChangeTable.Rows.Add(tableRow);
tableRow.TableSection = TableRowSection.TableBody;
CancelAddMedChangeBtn.Style.Add("display", "inline-block");
EnableAddMedChangeBtn.Style.Add("display", "none");
}
}
换句话说,当点击enableAddMedChangeBtn时,我向表中添加一行并显示取消按钮。
现在,当单击取消按钮时,我无法访问我在取消按钮的事件处理程序中第一次单击时添加的行。换句话说,如果表有2行并且我添加了第3行,则表在取消按钮的事件处理程序中显示为有两行。实际上,如果我注释掉整个取消按钮事件处理程序(但仍然让空方法执行),则会删除附加行。
所有的帮助都表示赞赏,提前谢谢。
答案 0 :(得分:0)
点击此链接:http://www.dotnetbull.com/2013/09/maintain-dynamic-control-events-data-during-postback.html。
似乎动态创建的控件(即不在页面标记中的控件)需要一些额外的管道来维护。