У меня есть UserControl, называемый UC_Widget, он наследуется от System.Web.UI.UserControl и ITextControl. Он также переопределяет функцию AddParsedSubObject. Когда я использую его, как показано ниже, он работает хорошо.Как добавить UserControl в другой UserControl?
<uc1:UC_Widget ID="UC_Widget1" runat="server">
hello world
</uc1:UC_Widget>
, но это выходит проблема: если я хочу использовать этот элемент управления, чтобы содержать другой пользовательский элемент управления, как я могу сделать для этого ?? много thx!
<uc1:UC_Widget ID="UC_Widget1" runat="server">
hello world
<uc1:UC_Widget ID="UC_Widget2" runat="server">
guy
</uc1:UC_Widget>
</uc1:UC_Widget>
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();
}
}
}
какая ошибка вы получаете? – Nix
Thx Nix, я получил эту ошибку, коллекция Controls не может быть изменена, потому что элемент управления содержит блоки кода (т. Е. <% ... %>). пока я выполняю метод AddParsedSubObject –