强制IsPostBack在Controls.Add(新控件)中变为false;

时间:2011-08-11 21:31:34

标签: asp.net webforms

我使用ASP.NET 3.5和WebForms + jQuery,当我在运行时使用按钮单击事件添加UserControl(ACSX)时,自定义acsx中的事件page_load在IsPostBack中显示为false,因此当它发生时,海关控制在里面控件无法初始化。然后我通过jQueryUI.Modal

在模态对话框中显示acsx

如何在控件加载中强制IsPostBack为false?

问候。

1 个答案:

答案 0 :(得分:2)

你可以添加一个与IsPostBack一起工作的会话变量,即

正在创建控制的控件(代码)

Session["reload"] = true;
placeholder.Controls.Add(LoadControl("~/path/to/control.ascx"));

UserControl代码

protected void Page_Load(object sender, EventArgs e){
    var reload = Session["reload"];
    if(!IsPostback || (reload != null && (bool)reload))
    {
      Session["reload"] = null;//reset the session var
      //do load
    }
}

轻微修改和按需重新加载的能力