UserControl mit 'Inhalt'

Hallo Gemeinde…

Ich habe wollte ein UserControl schreiben, an das ich einen Inhalt übergeben kann, à la:

==Inhalt==

Das UserControl soll etwas in dem Stile erzeugen:

==Inhalt==

Mein Problem ist: wie komm ich an „Inhalt“ ran? Ich kann zwar in der Render-Methode

RenderChildren(output);

aufrufen, aber das bringt mir nix, weil drumrum ja noch das Panel soll.

Am liebsten wäre mir also irgendwas wie

aber ich hab keinen Schimmer, wie „innerContent“ aussehen soll… :frowning:
Oder kann ich außerhalb der Render-Methode irgendwie auf den output-Stream zugreifen? Dann könnte ich ja RenderChildren nutzen.

Ich danke Euch!

Ich hab eine Lösung gefunden:

Ich nutze einen asp:stuck_out_tongue:laceHolder, implementiere INamingContainer und füge noch ein ITemplate als inner Property hinzu:

 private ITemplate \_content;
 [PersistenceMode(PersistenceMode.InnerProperty)]
 public ITemplate Content
 {
 get { return \_content; }
 set { \_content = value; }
 }

 protected override void CreateChildControls()
 {
 if (\_content != null)
 \_content.InstantiateIn(ctrlContent);
 }

Dummerweise hab ich jetzt das Problem, nicht auf ID zugreifen zu können, die innerhalb des UserControls definiert werden:

Ein

 myLabel.Text = "blah";

im CodeBehind funktioniert nicht, weil er „myLabel“ nicht kennt. :frowning:

Falls jemand Ideen hat, wie ich ASP davon überzeugen könnte, dass die ID da ist, dann immer her damit…

OK, ich habe (wurde) eine Lösung gefunden: Wenn man das TemplateControl zu einem ContainerControl erweitert klappts.