Я думаю, что вы предлагаете что-то вроде электронного письма MIME, в котором есть переменное количество разделов, каждый с идентификатором для клиента, чтобы выбрать лучшую версию письма, которое он может обработать.Я предполагаю, что вы хотите выбрать соответствующий шаблон во время выполнения на основе этого атрибута.
Стандартные элементы управления .NET, насколько я могу судить, не реализуют этот способ.Подумайте о повторителе, который имеет:
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>...</HeaderTemplate>
<ItemTemplate>...</ItemTemplate>
<FooterTemplate>...</FooterTemplate>
</asp:Repeater>
Каждый из подэлементов (шаблонов) имеет свое имя, а не то же имя с отдельным атрибутом.
Есть ли у вас какой-нибудь способ заранее определить, какими могут быть все возможные секции, как это делает ретранслятор?
<asp:MyControl runat="server" ID="myCtlTest">
<SomethingTemplate><a href="SomePage.aspx" alt="Blah">Blah</a></SomethingTemplate>
<OtherTemplate><a href="OtherPage.aspx" alt="Blah">Blah</a></OtherTemplate>
</asp:MyControl>
Полагаю, нет, но хотел выкинуть это на всякий случай.
Альтернативно, может ли ContentAttribute перейти на MyControl?Затем SETter загрузит / соберет шаблон для вас в зависимости от значения.
<asp:MyControl runat="server" ID="myCtlTest" ContentAttribute="Something">
<Template></Template>
</asp:MyControl>
... или его можно загрузить методом вместо использования свойства SETter.
Если вам всегда понадобятся несколько шаблонов, возможно, комбинация этих двух понятий поможет.
<asp:MyControl runat="server" ID="myControlTest"
SomethingTemplate="Something"
OtherTemplate="Other">
<SomethingTemplate></SomethingTemplate>
<OtherTemplate></OtherTemplate>
</asp:MyControl>