Добавить один элемент управления для нескольких заполнителей

В моем page.aspx есть два заполнителя:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

// Other tags

<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>

Я создал один HtmlGenericControl в page.aspx.cs и хочу добавить его в оба PlaceHolders:

HtmlGenericControl NewControl = new HtmlGenericControl("div");
NewControl.ID = "newDIV";
NewControl.Attributes.Add("class", "myClass");
NewControl.InnerHtml = "**myContent**";
PlaceHolder1.Controls.Add(NewControl);
PlaceHolder2.Controls.Add(NewControl);

Проблема в том, что только последнее добавление вступает в силу!

Линия

PlaceHolder1.Controls.Add(NewControl);

не работает!

Я ошибся?

Заранее спасибо.

1 ответ

Решение

Элемент управления не может быть дочерним по отношению к более чем одному родительскому элементу управления. Вы должны создать свой HtmlGenericControl дважды:

Func<HtmlGenericControl> createControl = () => {
    HtmlGenericControl newControl = new HtmlGenericControl("div");
    newControl.ID = "newDIV";
    newControl.Attributes.Add("class", "myClass");
    newControl.InnerHtml = "**myContent**";
    return newControl;
};

PlaceHolder1.Controls.Add( createControl() );
PlaceHolder2.Controls.Add( createControl() );
Другие вопросы по тегам