ASP.NET-Webserversteuerelemente und Browserfunktionen

Aktualisiert: November 2007

Unterschiedliche Browser und die verschiedenen Versionen der Browser unterstützen jeweils andere Features. ASP.NET-Serversteuerelemente erkennen automatisch den Browser, der die Seite anfordert, und stellen das entsprechende Markup bereit. Einige Steuerelementfeatures können jedoch von älteren Browsern nicht dargestellt werden. Daher empfiehlt es sich, die Ausgabe der Seiten für möglichst viele Browsertypen zu überprüfen, um sicherzustellen, dass die Seiten von allen Browsern wie gewünscht dargestellt werden.

Automatisches Erkennen von Browsertypen

Standardmäßig bestimmt das ASP.NET-Seitenframework Browserfunktionen durch das Lesen der Benutzer-Agent-Informationen, die vom Browser während der Abfrage an den Server übergeben wurden. (Diese Informationen stehen als UserAgent-Eigenschaft des HttpRequest-Objekts zur Verfügung.) Die Seite vergleicht die Benutzer-Agent-Informationen mit Agenteneinträgen in Konfigurationsdateien und Browserdefinitionsdateien.

Hinweis:

Der browserCaps-Abschnitt von Konfigurationsdateien (.config) gilt in .NET Framework, Version 2.0, als veraltet. Aus Gründen der Rückwärtskompatibilität sind die Konfigurationseinstellungen in diesem Abschnitt weiterhin gültig, solange sie auf Anwendungsebene festgelegt sind. Sie werden jedoch mit den Informationen der Browserdefinitionsdateien (.browser) zusammengeführt, die auf Computerebene im Ordner %SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG\Browsers und in vorhandenen App_Browser-Ordnern auf Anwendungsebene gespeichert sind. Weitere Informationen finden Sie unter Schema der Browserdefinitionsdatei (browsers-Element).

Wenn die Seite eine Übereinstimmung zwischen den aktuellen Benutzer-Agent-Informationen und den in der Datei aufgeführten Benutzer-Agents findet, kann sie die entsprechenden Browserfunktionen lesen, z. B. ob der Browser Skripting, Formate, Frames usw. unterstützt. Auf Grundlage dieser Funktionen werden die Websteuerelemente von den Steuerelementen der Seite mit dem entsprechenden Markup (XHTML, HTML 3.2 usw.) dargestellt. Beim Darstellen des HTML-Codes kann ASP.NET bestimmen, ob neuere (Cascading Stylesheet-kompatible) oder ältere (nicht-CSS-kompatible) HTML-Elemente dargestellt werden sollen. Bei älteren Browsern rendert ASP.NET die Formatierungsinformationen mithilfe von Elementen (wie dem font-Element) und nicht mit CSS-Stilen.

Überschreiben der Browsertyperkennung

Wenn Sie die Darstellung der Seite explizit steuern möchten (anstatt sich auf die automatische Browsererkennung zu verlassen), können Sie die ClientTarget-Eigenschaft der Seite festlegen. Sie können die Eigenschaft deklarativ als Attribut der @ Page-Direktive oder programmgesteuert festlegen.

Der Wert der ClientTarget-Eigenschaft ist ein Alias des Browsertyps, in dem die Seite dargestellt werden soll. Wenn die Seite z. B. in Microsoft Internet Explorer 6.0 dargestellt werden soll, können Sie den uplevel-Alias verwenden. Der Alias muss im clientTarget-Abschnitt der Konfigurationsdatei definiert werden. Die vordefinierten Standardeinstellungen sind ie5, ie4, uplevel und downlevel.

Mit der Angabe des downlevel-Alias können Sie erzwingen, dass in der Seite unabhängig vom Browser HTML 3.2-kompatible Elemente dargestellt werden. Entsprechend können Sie mit der Angabe von uplevel erzwingen, dass auch ältere Browserversionen CSS-Formatattribute darstellen.

Sie können zusätzliche Aliase erstellen, indem Sie diese in der Datei Machine.config bzw. in der Datei Web.config festlegen. Auf diese Weise können Sie benutzerdefinierte Browserdefinitionen erstellen. Weitere Informationen finden Sie unter ASP.NET-Konfigurationseinstellungen.

AJAX-fähige ASP.NET-Steuerelemente und -Features

AJAX-fähige Features in ASP.NET sind mit den meisten modernen Browsern kompatibel und werden mit den Standardsicherheitseinstellungen dieser Browser ausgeführt. Diese Steuerelemente und die Features erfordern, dass der Browser Clientskript ausführen kann. Die Steuerelemente UpdatePanel und ScriptManager sind Beispiele für AJAX-fähige Steuerelemente. Eine Liste der kompatiblen Browser und empfohlenen Sicherheitseinstellungen für AJAX-fähige Steuerelemente und Features finden Sie unter Browsersicherheitseinstellungen für AJAX-fähige ASP.NET-Seiten.

Hinweis:

Sie können die Eigenschaften verwenden, die vom HttpBrowserCapabilities-Objekt offengelegt werden, um zu ermitteln, ob ein Browser ECMAScript (JScript, JavaScript) unterstützt.

Eine Übersicht über die AJAX-Features in ASP.NET finden Sie unter Hinzufügen von AJAX- und Clientfunktionen.

Clientskript

Einige Funktionen von ASP.NET-Serversteuerelementen können nur mit Clientskript ausgeführt werden. Clientskript wird automatisch generiert und als Teil der Seite gesendet, sofern der Browser Skript ausführen kann. Dennoch ist es möglich, dass Benutzer die Ausführung von Skript für ihre Browser deaktiviert haben und daher die Steuerelementfunktionen nicht vollständig nutzen können. Weitere Informationen finden Sie unter Clientskript in ASP.NET-Webseiten.

Arbeiten mit älteren Browserversionen

Browser werden in zwei Gruppen eingeteilt und häufig als "Uplevel"-Browser (neuere Versionen) und "Downlevel"-Browser (ältere Versionen) bezeichnet. Diese Gruppen definieren den Typ der systemeigenen Unterstützung, die ein Browser enthält, und sie legen im Allgemeinen die Darstellung und das Verhalten einer Webseite fest.

"Uplevel"-Browser bieten in der Regel Unterstützung für:

  • ECMAScript (JScript, JavaScript), Version 1.2.

  • HTML, Version 4.0

  • Microsoft Document Object Model (MSDOM, Microsoft-Dokumentobjektmodell).

  • Cascading Stylesheets (CSS).

Browser und Clientgeräte, die als "Downlevel" bezeichnet werden, unterstützen nur Folgendes:

  • HTML, Version 3.2

Die in der folgenden Tabelle aufgelisteten Serversteuerelementeigenschaften werden in Uplevelbrowsern und Downlevelbrowsern jeweils unterschiedlich dargestellt.

Serversteuerelementeigenschaft

Darstellungsverhalten in Uplevelbrowsern und Downlevelbrowsern

AccessKey

Diese Eigenschaft wird von keinem Downlevelbrowser für kein Steuerelement unterstützt. Die Eigenschaft entspricht nicht dem HTML 4.0-Standard und wird erst ab Internet Explorer 4.0 unterstützt.

BackColor

Diese Eigenschaft funktioniert in Downlevelbrowsern nur bei bestimmten Steuerelementen: Table, Panel, GridView, Calendar und ValidationSummary. Auch die Steuerelemente CheckBoxList, RadioButtonList und DataList können verwendet werden, wenn sich das Layout in einem Table-Steuerelement befindet. Grundsätzlich können in HTML 3.2 nur als table-Element dargestellte Steuerelemente eine Hintergrundfarbe ausgeben, während dies in HTML 4.0 für nahezu alle Elemente möglich ist. Bei als span-Elemente dargestellten Steuerelementen wie Label-Steuerelementen, Validierungssteuerelementen und Listensteuerelementen im Flow-Modus wird BackColor erst ab Internet Explorer 5 unterstützt (jedoch nicht in Internet Explorer 4).

BorderColor

Diese Eigenschaft wird in Downlevelbrowsern nur für dieselben tabellenbasierten Steuerelemente wie BackColor unterstützt. Sie wird jedoch als bordercolor-Attribut dargestellt, das nicht im HTML 3.2-Standard enthalten ist. Einige Browser unterstützen dieses Attribut, einschließlich Internet Explorer 3.0 und höher, jedoch nicht alle.

BorderStyle

Diese Eigenschaft wird von Downlevelbrowsern nicht unterstützt. In HTML 3.2 gibt es kein Äquivalent für diese Eigenschaft.

BorderWidth

Die Eigenschaft wird nur für Steuerelemente unterstützt, die als table-Elemente von HTML (Table, Panel, GridView und Calendar) oder als ein img-Element dargestellt werden (Image, AdRotator). Die BorderWidth-Eigenschaft wird von Downlevelbrowsern nur unterstützt, wenn die Angabe in Pixel erfolgt. Ansonsten wird die Eigenschaft entweder als border=1 oder border=0 dargestellt. Außerdem kann BorderWidth nur dann mit tabellenbasierten Steuerelementen verwendet werden, wenn GridLines auf einen anderen Wert als None festgelegt wird. Der Grund hierfür ist, dass in HTML 3.2 Rahmen nicht ohne Rasterlinien angegeben werden können. Bei als span-Elemente dargestellten Steuerelementen wie Label-Steuerelementen, Validierungssteuerelementen und Listensteuerelementen im Flow-Modus wird BorderWidth erst ab Internet Explorer 5 unterstützt (jedoch nicht mehr in Internet Explorer 4.0).

CssClass

Diese Eigenschaft wird unabhängig vom Browser immer als class-Attribut dargestellt. Das class-Attribut wird von den meisten Uplevelbrowsern erkannt.

Enabled

Diese Eigenschaft gibt an, ob ein Steuerelement seine Ereignisse und Funktionen auslöst. In Internet Explorer 4 oder neueren Versionen führt das Festlegen von Enabled auf false dazu, dass mithilfe des disabled=true-Attributs das Steuerelement als nicht verfügbar und für die Eingabe gesperrt wird.

Font-Bold, Font-Italic, Font-Strikeout und ähnliche Eigenschaften

Diese Eigenschaften werden für Uplevelbrowser als style-Attribute (z. B. Font-Weight für fett und Font-Style für kursiv) und für Downlevelbrowser als unabhängige Elemente (z. B. b und i) dargestellt.

Font-Size

Diese Eigenschaft wird von Downlevelbrowsern nur dann für alle Steuerelemente unterstützt, wenn benannte Schriftgrößen verwendet werden (Small, Smaller usw.). Diese Eigenschaft wird in Uplevelbrowsern als style-Attribut, in Downlevelbrowsern als font-Element dargestellt.

Font-Overline

Diese Eigenschaft wird von Downlevelbrowsern nicht unterstützt.

ForeColor

Diese Eigenschaft wird von Downlevelbrowsern für alle Steuerelemente außer Image, AdRotator, HyperLink und LinkButton unterstützt. In Downlevelbrowsern wird ForeColor mithilfe von font-Elementen dargestellt.

Height

Diese Eigenschaft wird von Downlevelbrowsern nicht für Label-Steuerelemente, Validierungssteuerelemente, HyperLink-Steuerelemente oder LinkButton-Steuerelemente unterstützt. Height kann außerdem nicht mit den Steuerelementen CheckBoxList, RadioButtonList und DataList verwendet werden, wenn das Layout dieser Steuerelemente auf Flow festgelegt ist. Als Maßangaben sind nur Pixel oder Prozent zulässig.

In tabellenbasierten Steuerelementen wird die Höhe innerer Tabellen für Downlevelbrowser nicht gerendert, da das Height-Attribut in HTML 4.01 veraltet ist. Dies führt zu leichten Abweichungen in der Darstellung des Uplevel- und Downlevel-Renderings. Der Unterschied wird am deutlichsten, wenn die Option BackColor für die SideBarStyle-Eigenschaft festgelegt wird: Bei Uplevelbrowsern bezieht sich BackColor auf die gesamte Länge der Spalte, und bei Downlevelbrowsern nimmt sie nur den Platz ein, der zur Darstellung der Textschaltflächen erforderlich ist.

TabIndex

Diese Eigenschaft wird von keinem Downlevelbrowser für kein Steuerelement unterstützt. Die Eigenschaft entspricht nicht dem HTML 4.0-Standard und wird erst ab Internet Explorer 4.0 unterstützt.

ToolTip

Diese Eigenschaft wird von Downlevelbrowsern nicht unterstützt.

Width

Diese Eigenschaft wird von Downlevelbrowsern für die Steuerelemente Label, HyperLink, LinkButton und für Validierungssteuerelemente nicht unterstützt. Width kann außerdem nicht mit den Steuerelementen CheckBoxList, RadioButtonList und DataList verwendet werden, wenn das Layout auf Flow festlegt ist. Als Maßangaben sind nur Pixel oder Prozent zulässig.

Siehe auch

Aufgaben

Gewusst wie: Erkennen von Browsertypen auf ASP.NET-Webseiten

Exemplarische Vorgehensweise: Entwickeln und Verwenden eines benutzerdefinierten Serversteuerelements

Referenz

ClientTarget

clientTarget-Element (ASP.NET-Einstellungsschema)

HttpBrowserCapabilities

Browser

UserAgent

WebControl

Weitere Ressourcen

Programmieren von ASP.NET-Webseiten

Entwickeln von benutzerdefinierten ASP.NET-Serversteuerelementen