Шаблонный пользовательский элемент управления ASP.NET - PullRequest
0 голосов
/ 09 октября 2008

Я пытаюсь создать пользовательский элемент управления, который позволяет пользователям создавать что-то вроде следующего:

  <uc1:MyControl id="controlThing" runat="server">

    <uc1:BoundColumn id="column1" Column="Name" runat="server" />
    <uc1:CheckBoxBoundColumn id="column2" Column="Selector" runat="server" />
    <uc1:BoundColumn id="column3" Column="Description" runat="server" />

     ...etc 

  </uc1:MyControl>

Есть только определенные элементы управления, которые я бы разрешил, в дополнение к тому, что вы можете иметь много любого типа. Я могу представить это в XSD, но я не совсем уверен в ASP.NET.

Мой ASP.NET вуду сейчас рисует пустым ... какие-нибудь мысли?

Ответы [ 3 ]

2 голосов
/ 09 октября 2008

PersistenceMode.InnerProperty - это то, что вам нужно. Вот документы MSDN. Выполнение чего-то подобного даст вам то, что вы хотите:

[PersistenceMode(PersistenceMode.InnerProperty)]
public ListItem Items {
   get; set;
}

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

<cc1:MyControl runat="server">
   <Items>
       <asp:ListItem Text="foo" />
   </Items>
</cc1:MyControl>

Вы также можете создавать свои собственные классы для использования там.

0 голосов
/ 09 октября 2008

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

<mycontrol id="control1" runat="server">
    <templateitem id="bleh1" runat="server" />
    <templateitem id="bleh2" runat="server" />
    <templateitem id="bleh3" runat="server" />
     ..etc
</mycontrol>
0 голосов
/ 09 октября 2008

Возможно ли переопределить существующий элемент управления, такой как ListView или GridView? Это ваш самый простой вариант.

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

Я не сделал ни одного, но быстрый Google вернул это: http://www.developerfusion.com/article/4410/in-depth-aspnet-using-adonet/2/ это выглядело хорошо.

У меня есть книга «Разработка серверных элементов управления и компонентов Microsoft ASP.NET», в которой она описана, но я еще не прочитал ее (http://www.amazon.com/exec/obidos/ASIN/0735615829/nikhilkothari-20)

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