【发布时间】:2009-04-16 08:54:38
【问题描述】:
我读到了关于在 ASP.NET 中创建动态控件的这段文字:
...当使用动态控件时,您 必须记住它们将存在 直到下一次回发。 ASP.NET 不会重新创建动态添加的 控制。如果您需要重新创建一个 控制多次,你应该 在 Page.Load 事件处理程序。这有 允许您的额外好处 将视图状态与您的动态一起使用 控制。即使视图状态是 通常在 Page.Load 之前恢复 事件,如果您在 Page.Load 事件的处理程序, ASP.NET 将应用任何视图状态 它在之后拥有的信息 Page.Load 事件处理程序结束。这个 过程是自动的 ...
我想在示例中尝试一下 以声明方式创建一个按钮 -
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" />
并在代码 5 复选框后面动态显示 -
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i <= 5; i++)
{
var chBox = new HtmlInputCheckBox();
Controls.Add(chBox);
}
}
但是当我检查一些复选框并点击按钮时,回发所有复选框后 状态被删除。这意味着 ASP.NET 不管理动态控件的视图状态 自动地?我试图为每个复选框和整个页面启用视图状态, 但它不起作用。 有人可以解释一下: 1. 为什么会这样? 2. 如何避免?
【问题讨论】:
-
嗨。在我的评论中查看更新的代码,希望它有效。如果没有,请给我写评论,我会看看是否可以提供帮助。
标签: asp.net