大家好,我有一个用户控件,我将它加载到一个占位符并在按钮点击时显示它,这是第一次它工作正常,但如果我再次单击该按钮代码执行但用户控件没有任何帮助,请
protected void btn_Click(object sender, EventArgs e)
{
placeholder.Controls.Clear();
UserControl1 usrcntrl= (UserControl1)LoadControl("~/UserControl.ascx");
placeholder.Controls.Add(usrcntrl);
}
答案 0 :(得分:0)
您需要重新启动每个回发的所有动态控件,其ID与以前相同,最迟在Page_Load
。
TRULY Understanding Dynamic Controls
以下是通过ViewState
存储已创建控件数量的可能实现:find control at runtime
Q: Do you want to add only one or multiple of this control?
A: Only one user control
无论如何,您必须重新创建此控件。但我建议您使用静态控件,只需Visible
。由于ASP.NET可以更好地处理ViewState
声明性控件,因此不那么复杂,可读性更高,效率更高。