Entwickler-Ecke
ASP.NET und Web - Wrap-Eigenschaft im UserControl
UGrohne - Di 20.05.08 16:59
Titel: Wrap-Eigenschaft im UserControl
Hallo,
ich arbeite gerade an einem Framework zu einem CMS. Dazu habe ich eine abstrakte Klasse BaseControl, die von WebControl erbt. Von dieser erben einige Control-Klassen, die verschiedene Dinge tun (z.B. Text darstellen, Bilder formatieren usw.). Ein ContentManager, der auf der ASPX-Seite ist, erstellt diese Klassen dann dynamisch.
Die Ausgabe der einzelnen Controls erfolgt, indem die Render-Prozedur überschrieben wird und das HTML ausgegeben wird. Jeztt möchte ich erreichen, dass ein ContentManager bestimmt, dass jedes Element in einem bestimmtes HTML-Tag eingeschlossen werden soll, dazu hab ich dem ContentManager eine Eigenschaft ElementWrap gegeben, die z.B. so aussieht: <div class="element">|</div>. Das | soll dann durch die eigentliche Ausgabe ersetzt werden.
Jetzt macht es natürlich Sinn, dass das Ganze in BaseControl geschieht, nur ist das Dumme: Ich find keine passenden Ereignisse. es gibt zwar RenderBeginTag und RenderEndTag, aber diese werden beide vor der eigentliche Render-Prozedur aufgerufen, sodass das komplette Wrap VOR dem Content-Output des eigentlichen Content-Elements kommt und das ist ja nicht der Sinn der Sache.
Hat mir hier jmd eine Idee, wie man das machen könnte, ohne alles komplett umbauen zu müssen?
UGrohne - Mi 21.05.08 11:18
Im mycsharp-Forum hab ich jetzt eine Antworte dazu bekommen:
http://www.mycsharp.de/wbb2/thread.php?postid=301445#post301445
Die hat mich auf den richtigen Weg gebracht. Ich muss nur die ChildControls kurz anpassen und statt der Render- die RenderContents-Methode überschreiben. In BaseControl überschreibe ich dann Render und rufe nacheinander RenderBeginTag, RenderContents und dann RenderEndTag auf und schon funktionierts und zwar sowohl wenn ich direkt HTML-Code ausgebe, als auch wenn ich ChildControls in meinen Content-Elementen lade.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!