Заполнитель содержимого ASP.NET в UserControl - PullRequest
1 голос
/ 29 марта 2011

Я хочу иметь возможность сделать что-то вроде этого:

<uc:MyUC>
    <CustomContent>
        <span id="name">johnny the assasin</span>
    </CustomContent>
</uc:MyUC>

и имея этот элемент управления для визуализации

hello <b><span id="name">johnny the assasin</span></b>

но я не могу найти способ выставить свойство, которое позволяет мне писать любую разметку, которую я хочу, как если бы у меня был заполнитель содержимого в моем пользовательском элементе управления

Возможно ли что-то подобное?

Ответы [ 2 ]

5 голосов
/ 29 марта 2011

Я думаю, вам нужно определить свойство типа ITemplate в вашем элементе управления.Например,

[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate CustomContent { get; set; }

, а затем вы можете использовать его в разметке, например:

<uc:MyUC>
    <CustomContent>
        <span id="name">johnny the assasin</span>
    </CustomContent>
</uc:MyUC> 

Более подробно можно найти здесь: Как: создать шаблонные элементы управления ASP.NET

1 голос
/ 29 марта 2011

Если вы установите атрибут [ParseChildren(false)] в пользовательском контроле asp.net, он не будет обрабатывать html-теги как свойства элемента управления.

Таким образом, в вашем определении класса

[ParseChildren(false)]
public class MyUC : System.Web.UI.UserControl
{

}

Конечно, если вы хотите, чтобы ваш пользовательский элемент управления действительно имел свойства, и свойство, которое отображается как есть, вам, возможно, придется создать свой основной пользовательский элемент управления, а затем свойство CustomContent будетдругой пользовательский элемент управления, который просто отображает содержимое.

См. эту ссылку для полезной статьи .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...