内部にマークアップを格納できる WebControl を作成し、独自の子コントロールを動的に作成しようとしています。私が抱えている問題は、作成した子コントロールとは別に、マークアップに格納されたコントロール (以下の例を参照) を (まだ) レンダリングできないことです。
これらの 2 つのフラグを使用してクラスを設定する必要があることは承知しています。
[ParseChildren(false)]
[PersistChildren(true)]
public class OuterControl : WebControl
{
...
}
サンプルのマークアップは次のようになります。
<custom:OuterControl>
<asp:TextBox ...>
<custom:OuterControl>
RenderContents()内には、コントロール ツリーに追加してレンダリングし、特定の部分でマークアップにラップされたものをレンダリングする必要があるいくつかのコントロールがあります。例えば:
protected override void RenderContents(HtmlTextWriter output)
{
EnsureChildControls();
[ Misc work, render my controls ]
[** Would like to render wrapped children here **]
[ Possibly other misc work ]
}
前述のように、コードで作成したコントロールをRenderChildren()の呼び出しから 2 回レンダリングするか、その行を削除してラップされたコントロールをまったくレンダリングしないようにすることができます。ダーン。
考え?