将用户控件添加到不在第二次回发的表单上的占位符

时间:2013-10-07 09:00:46

标签: asp.net user-controls

大家好,我有一个用户控件,我将它加载到一个占位符并在按钮点击时显示它,这是第一次它工作正常,但如果我再次单击该按钮代码执行但用户控件没有任何帮助,请

protected void btn_Click(object sender, EventArgs e)
    {
        placeholder.Controls.Clear();
        UserControl1 usrcntrl= (UserControl1)LoadControl("~/UserControl.ascx");
        placeholder.Controls.Add(usrcntrl);
    }

1 个答案:

答案 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声明性控件,因此不那么复杂,可读性更高,效率更高。

TRULY Understanding ViewState