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.NETMultiViewコントロールを使用できます。

例: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 に答える