C# 如何将UserControl添加到另一个UserControl中?
我有一个名为UC_Widget的用户控件,它继承自System.Web.UI.UserControl和ITextControl。它还重写函数AddParsedSubObject。当我像下面这样使用它时,它运行良好C# 如何将UserControl添加到另一个UserControl中?,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个名为UC_Widget的用户控件,它继承自System.Web.UI.UserControl和ITextControl。它还重写函数AddParsedSubObject。当我像下面这样使用它时,它运行良好 <uc1:UC_Widget ID="UC_Widget1" runat="server"> hello world </uc1:UC_Widget> 这将导致无限循环。。。如果UC_小部件包含另一个UC_小部件,则内部UC_小部件也将包含一个UC_小部件
<uc1:UC_Widget ID="UC_Widget1" runat="server">
hello world
</uc1:UC_Widget>
这将导致无限循环。。。如果UC_小部件包含另一个UC_小部件,则内部UC_小部件也将包含一个UC_小部件,依此类推。您需要想出更好的设计。虽然可能有更好的设计,但这仍然是可能的
<asp:UpdatePanel>
<ContentTemplate>
<asp:UpdatePanel>
<ContentTemplate>
Hi there
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
你好
我不相信这一点。可能不是最好的设计,但我认为是可能的。Thx Nix,我遇到了这个错误,控件集合无法修改,因为控件包含代码块(即)。当我执行AddParsedSubObject方法时
protected override void AddParsedSubObject(object obj)
{
if (this.HasControls())
{
base.AddParsedSubObject(obj);
}
else if (obj is LiteralControl)
{
HtmlContent.Append(((LiteralControl)obj).Text);
this.Text = HtmlContent.ToString();
}
else
{
string text1 = this.Text;
UC_eClinicWidget tmp = obj as UC_eClinicWidget;
if (tmp != null)
{
HtmlContent.Append(GetControlHtml(tmp));
this.Text = HtmlContent.ToString();
}
}
}
<asp:UpdatePanel>
<ContentTemplate>
<asp:UpdatePanel>
<ContentTemplate>
Hi there
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>