【问题标题】:loading usercontrols dynamically - postback issue动态加载用户控件 - 回发问题
【发布时间】:2011-10-21 12:50:00
【问题描述】:

我试图在 aspx 页面上动态加载用户控件,但是它可以工作,但我遇到回发问题?我在用户控件上有一个图像按钮,我想显示图像但是当我单击按钮时页面刷新并且不显示图像?我在 aspx 页面和后端代码上有一个占位符,我有这个:

 protected void Page_Load(object sender, EventArgs e)
 {      

     if (!IsPostBack)
     {
            Control uc = Page.LoadControl("~/UserControls/Mycontrol.ascx");
            placeholder1.Controls.Add(uc);

     }
 }

我需要在 page_preinit 或 page_init 中做些什么吗??

【问题讨论】:

    标签: c# asp.net user-controls postback page-lifecycle


    【解决方案1】:

    您应该始终在每次回发时重新加载 Page_init 上的用户控件。

    【讨论】:

      【解决方案2】:

      必须在每次回发时添加添加到页面的动态控件,而不仅仅是第一个回发。删除 !IsPostBack 条件。其次,它们必须在 init 或 preinit 期间添加,因为这样才能正确捕获和恢复视图状态(ASP.NET 在初始化和加载事件之间恢复视图状态)。

      【讨论】:

      【解决方案3】:

      给控件一个ID并在Page_init中加载控件

      uc.ID = "your id";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 2011-05-17
        相关资源
        最近更新 更多