0

我正在尝试在服务器控件中实现类似的功能。

<MyNewControl runat="server">
    <FirstTemplate>
        <asp:Label runat="server" ForeColor="Red">Hello</asp:Label>
    </FirstTemplate>
    <SecondTemplate>
        <asp:Label runat="server" ForeColor="Blue">Hello</asp:Label>
    </SecondTemplate>
</MyNewControl>

我希望知道如何实现 MyNewControl 服务器控件以接受这些模板容器。我希望他们允许更复杂的内容,而不仅仅是包含标签。
目标是能够选择我希望控件呈现的模板。

我环顾四周,找不到可以告诉我 ASP.NET 的哪一部分支持我正在寻找的东西。

4

1 回答 1

3

如果目标是选择要呈现的内容,您可以使用内置的 ASP.NET MultiView 控件而不是自己编写。

例如 ASPX 标记:

<asp:MultiView ID="multiExample" runat="server">
  <asp:View ID="viewOne" runat="server">
    <h1>This is my first view</h1>
  </asp:View>
  <asp:View ID="viewTwo" runat="server">
    <h1>This is my second view</h1>
  </asp:View>
</asp:MultiView>

用于在“模板”之间切换的 C# 代码隐藏代码:

  if (condition1)
  {
    multiExample.SetActiveView(viewOne);
  }
  else
  {
    multiExample.SetActiveView(viewTwo);
  }

如果您想了解如何从头开始创建模板化用户控件,这里有一个 MSDN 教程:http: //msdn.microsoft.com/en-us/library/36574bf6 (v=vs.100).aspx

于 2012-09-06T12:20:02.337 回答