2010-12-03 4 views
0

私はCollapsiblePanelコントロールを作成しようとしています。これは、本質的に単なるパネルで、ボディを展開/折りたたむために使用できるヘッダーがあります。 、先頭を私はページ(インライン)に取り組んで、それの例を持っているが、今、それだから、カスタムコンテナコントロール

<cc:CollapsiblePanel runat="server" Header="This is a collapsible panel"> 
    <asp:Label runat="server" Text="This is the contents of the panel" /> 
</cc:CollapsiblePanel> 

を次のように使用することができ、再利用可能なコントロールにするために何を、私はCollapsiblePanelは、ヘッダーをレンダリングしたいですコンテナの内容物(この場合はラベル)、最後にコンテナの端部に表示されます。

これを正しく行う方法がわかりません。私は右の点にコントロールを挿入するためにレンダリングのメソッドをオーバーライドするいくつかの例を見てきましたが、それは非常にハックのようです。

このようなことを行うための「適切な」方法とは何ですか? (.NET 4.0で違いがある場合)

答えて

0

これを行うには、レンダリング方法を無効にすることをお勧めします。 RenderBeginTagとRenderEndTagを使用します。

+0

問題は、Ajax Control ToolkitのCollapsiblePanelExtenderを使用しています。かなり複雑なレンダリングロジックを所有しています。残念なことに前後のdivを書くのは単なるケースではありません。 :) – Barg

+0

その場合、おそらくレンダリングメソッドをオーバーライドする必要はありません。コンポジットコントロールを作成するだけで、パネルとエクステンダーをCreateChildControlsに追加し、エクステンダーのtagetIDをパネルのIDに設定することができます。 asp.netは、残りの世話をする必要があります。 – Mike