Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态加载用户控件-回发问题_C#_Asp.net_User Controls_Postback_Page Lifecycle - Fatal编程技术网

C# 动态加载用户控件-回发问题

C# 动态加载用户控件-回发问题,c#,asp.net,user-controls,postback,page-lifecycle,C#,Asp.net,User Controls,Postback,Page Lifecycle,我试图在一个aspx页面上动态加载一个usercontrol,但是它可以工作,但是我收到了回发问题??我在usercontrol上有一个图像按钮,我想显示一个图像,但是当我点击按钮时,页面刷新,不显示图像?。我在aspx页面上有一个占位符,后端代码如下: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Control uc = Page

我试图在一个aspx页面上动态加载一个usercontrol,但是它可以工作,但是我收到了回发问题??我在usercontrol上有一个图像按钮,我想显示一个图像,但是当我点击按钮时,页面刷新,不显示图像?。我在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中执行某些操作?

每次回发时,都应在page_init上重新加载用户控件。

添加到页面的动态控件必须在每次回发时添加,而不仅仅是第一次。删除
!iPostback
条件。其次,必须在init或preinit期间添加它们,因为这样可以正确捕获和还原viewstate(ASP.NET在init和load事件之间还原viewstate)。

为控件指定ID,并在Page_init中加载控件

uc.ID = "your id";
伙计们,看看这个