Je cherche à créer un WebControl qui peut contenir du balisage à l'intérieur et faire sa propre création dynamique de contrôles enfants. Le problème que j'ai est que je ne peux pas (encore) rendre les contrôles logés dans le balisage (voir l'exemple ci-dessous) séparément des contrôles enfants que je crée.ASP.NET WebControl et le rendu contenaient des enfants
Je suis conscient que je dois mettre en place la classe avec ces 2 drapeaux:
[ParseChildren(false)]
[PersistChildren(true)]
public class OuterControl : WebControl
{
...
}
Et balisage exemple ressemblerait à ceci:
<custom:OuterControl>
<asp:TextBox ...>
<custom:OuterControl>
intérieur RenderContents(), je certains contrôles que je dois ajouter à l'arbre de contrôle, restituer, puis rendre ceux enveloppés dans le balisage dans une partie particulière. .: par exemple
protected override void RenderContents(HtmlTextWriter output)
{
EnsureChildControls();
[ Misc work, render my controls ]
[** Would like to render wrapped children here **]
[ Possibly other misc work ]
}
Comme il est dit, je peux soit obtenir mes commandes créé le code à rendre deux fois d'appeler RenderChildren(), ou les contrôles enveloppées ne pas rendre du tout en supprimant cette ligne. Zut.
Pensées?