我试图在aspx页面上动态加载用户控件,但它可以工作,但我得到回发问题?我在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中执行某些操作?
答案 0 :(得分:5)
您应该始终在每个帖子的Page_init上重新加载用户控件。
答案 1 :(得分:2)
必须在每次回发时添加添加到页面的动态控件,而不仅仅是第一个。删除!IsPostBack
条件。其次,它们必须在init或preinit期间添加,因为这样,viewstate将被正确捕获和恢复(ASP.NET恢复init和load事件之间的viewstate)。
答案 2 :(得分:1)
为控件提供ID,并在Page_init
中加载控件uc.ID = "your id";