我在网上搜索以查找如何复制或以某种方式在asp.net中克隆用户控件,但是我找不到任何东西,因为也许没有人遇到这个问题,或者我很有才华来找到解决方案。 通过摆弄代码,我得到了解决方案。 假设您要为页面中的每个面板添加一个用户控件,请在页面上为每个面板搜索页面,然后添加该控件,但这仅是usercontrol1的一个实例,并且只能使用一次。 这是行不通的。
UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
foreach (Panel p in form1.Controls.OfType<Panel>())
{
p.Controls.Add(uc);
}
如果您使用返回控件的函数,则该代码有效 因此,有效的代码如下所示,就像一个咒语,但我不知道它是否是最佳的。
UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
foreach (Panel p in form1.Controls.OfType<Panel>())
{
p.Controls.Add(returnuc());
}
//this is the function that creates an instance each time
private Control returnuc ()
{
UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
return uc;
}
gl,祝您编程愉快,希望对您有所帮助。