【发布时间】:2011-10-25 05:35:40
【问题描述】:
我编写了用户控件 InputDetails,其中包含几个文本框和几个单选框。
我在 Page_Load 期间动态添加它:
if(!Page.IsPostBack()){
InputDetails input = (InputDetails)Page.LoadControl("InputDetails.ascx");
PlaceHolder1.Controls.Add(input);
}
但是当我刷新页面时,控件不见了,所以我问,如何将用户控件保存在已添加的视图状态中,以便下次自动重新加载。更好的是,当页面回发时,我如何读取用户控件文本框中的值?我需要能够在单个页面上添加多个 InputDetails,以便保存它会很有用。
【问题讨论】:
-
正如 Lucas 所提到的,删除 Postback-Check 即可。必须在每次回发时重新创建动态创建的控件。如果您不手动更改控件的 ID,ASP.NET 将自动从 ViewState 恢复值(如
TextBox.Text)。