DevTrain

Autor: Hannes Preishuber

Zugriff auf die HTML Seite aus Codebehind

Wie setze ich die z.B. Hintergundfarbe einer HTML Seite per Code? Solche Fragen die sich um den Zugriff auf die HTML Seite drehen, tauchen immer wieder auf. Der erste Ansatz dies über this.bgcolor funktioniert nicht.

This bezieht sich auf die Page Klasse von der jede ASP.NET Seite vererbt ist. Diese Page Klasse kümmert sich um viele Dinge wie den Aufbaus des Viewstates oder auch grundlegende Reender entscheidungen, aber solche Details wie spezielle Attribute des Body Tags beleiben unberücksichtigt.

Damit sind wir dem Lösungsansatz schon auf der Spur. Wie bei allen Controls müssen diese durch den Zusatz runat=server dem Objektmodell bekannt gemacht werden. Ausserdem wird eine ID benötigt über die das Server Control dann angesprochen werden kann.
<body runat="server" id="theBody">

Wenn man mit Visual Studio arbeitet werden automatisch Codebehind Dateien angelegt. In diesem Fall muss in der Code Datei theBody erst deklariert werden um es nutzen zu können.
Bei üblichen Web Server Controls erledigt das der Designer voll automatisch.
protected HtmlGenericControl theBody;

Ein guter Platz um die Farbe zu setzen ist dann die Page Load Funktion. Dazu wird das Server Control theBody mit einem zusaätzlichen Attribut versehen. Wie üblich bei Collections wird die Funktion Add mit zwei Parameter verwendet

theBody.Attributes.Add("bgcolor", "#000000");

Dieses Beispiel würde den Hintergrund schwarz färben.

Wenn man für alle Seiten die Hintergrundfarbe setzen will, dann empfiehlt es sich, dafür eine Ableitung der Page-Klasse zu schreiben, die dann diese Property enthält.

Die Anregung zu diesem Artikel stammt von Karsten Samschke

 


Erfasst am: 31.01.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=822
© Copyright 2003 ppedv AG - http://www.ppedv.de