Freigeben über


ASP.NET-Serversteuerelemente und Browserfunktionen

Verschiedene Browser und verschiedene Versionen derselben Browser unterstützen unterschiedliche Funktionen. ASP.NET-Serversteuerelemente bestimmen automatisch die Version des Browsers, von dem die ASPX-Seite angefordert wurde, und wandeln den generierten HTML-Code automatisch in das für diesen Browser geeignete Format um. 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.

Automatische Erkennung von Browsertypen

Standardmäßig bestimmt das ASP.NET-Seitenframework Browserfunktionen durch das Lesen der Benutzeragenteninformationen, die vom Browser während der Abfrage an den Server übergeben wurden. (Diese Informationen stehen als UserAgent-Eigenschaft oder als HttpRequest-Objekt zur Verfügung.) Die Seite vergleicht die Benutzeragenteninformationen mit den Agenteneinträgen in der Konfigurationsdatei (CONFIG-Datei) für die Anwendung, die Site oder den Computer. Wenn die Seite eine Übereinstimmung zwischen den aktuellen Benutzeragenteninformationen und den in der Datei aufgeführten Benutzeragenten findet, kann sie die entsprechenden Browserfunktionen lesen, z. B. ob der Browser Skripting, Formate, Frames usw. unterstützt. Auf Grundlage dieser Funktionen geben die Steuerelemente auf der Seite Websteuerelemente wieder, die entweder Uplevel-HTML-Elemente (CSS-kompatibel) oder Downlevel-HTML-Elemente (keine CSS-Unterstützung) verwenden.

Überschreiben der Browsertyperkennung

Wenn Sie die Wiedergabe der Seite explizit steuern möchten (anstatt sich auf die automatische Browsererkennung zu verlassen), können Sie die ClientTarget-Eigenschaft der Seite festlegen. Dies kann im Eigenschaftenfenster oder in der HTML-Ansicht erfolgen. Die Eigenschafteneinstellung ist als ein Attribut der @ Page-Direktive für diese Seite gespeichert.

Der Wert der ClientTarget-Eigenschaft ist ein Alias für den Browsertyp, für den die Ausgabe erfolgen soll. Die folgenden Aliase stehen standardmäßig zur Verfügung:

  • ie4   Ausgabe erfolgt mit Internet Explorer 4-Funktionen.
  • ie5   Ausgabe erfolgt mit Internet Explorer 5-Funktionen.
  • uplevel   Ausgabe erfolgt mit Internet Explorer 4-Funktionen.
  • downlevel   Ausgabe erfolgt mit HTML 3.2-Funktionen; d. h. keine CSS-Unterstützung.

Die oben genannten Aliase sind im <clientTarget>-Element der Datei machine.config für den Server festgelegt und sind spezifischen Benutzeragenteninformationen zugeordnet. Beispielsweise ist der Alias "ie5" den Benutzeragenteninformationen zugeordnet, die gewöhnlich vom Internet Explorer 5 zurückgegeben werden.

Durch Festlegen von "downlevel" können Sie erzwingen, dass die Seite HTML 3.2-kompatible Elemente wiedergibt, unabhängig davon, von welchem Browser die Seite angefordert wurde. Entsprechend können Sie durch Festlegen von "ie5" erzwingen, dass die Seite sogar für Downlevelbrowser CSS-Formatattribute ausgibt.

Sie können zusätzliche Aliase erstellen, indem Sie diese in der Datei machine.config bzw. Web.config festlegen. Dadurch wird das Erstellen benutzerdefinierter Browserdefinitionen ermöglicht. Weitere Informationen finden Sie unter ASP.NET-Einstellungsschema.

Hinweis   Mit Hilfe der ClientTarget-Eigenschaft der Seite können Sie festlegen, wie die Seite zur Laufzeit wiedergegeben wird, sie wird jedoch im Web Forms-Designer von Visual Studio nicht zur Entwurfszeit verwendet. Wenn Sie einen Browsertyp zum Generieren von HTML-Elementen, Überprüfen von HTML und Bereitstellen der entsprechenden HTML-Auswahlmöglichkeiten für den Anweisungsabschluss festlegen möchten, geben Sie die targetSchema-Eigenschaft der Seite an.

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 Web Forms-Seiten.

Uplevel- und Downlevelbrowserfunktionen

Browser und Clientgeräte sind in zwei unterschiedliche Gruppen unterteilt: Uplevel und Downlevel. Diese Gruppen definieren den Typ der systemeigenen Unterstützung, die ein Browser oder Clientgerät enthält, und sie legen im Allgemeinen die Darstellung und das Verhalten einer von einem Webserver geladenen Seite fest.

Browser und Clientgeräte, die als Uplevel betrachtet werden, unterstützen mindestens eines der folgenden Elemente:

  • ECMAScript (JScript, JavaScript), Version 1.2.
  • HTML Version 4.0
  • Microsoft Document Object Model (MSDOM, Microsoft-Dokumentobjektmodell)
  • Überlappende Stylesheets (CSS)

Downlevel-Browser und -Clientgeräte unterstützen nur Folgendes:

  • HTML Version 3.2

Die folgenden Eigenschaften von Serversteuerelementen werden in Uplevel- und Downlevelbrowsern unterschiedlich dargestellt:

  • AccessKey wird von Downlevelbrowsern für kein Steuerelement unterstützt. Die Eigenschaft entspricht nicht dem HTML 4.0-Standard und wird nur von Microsoft Internet Explorer 4 und höher unterstützt.
  • BackColor wird von Downlevelbrowsern nur für einige Steuerelemente unterstützt: Table, Panel, DataGrid, Calendar und ValidationSummary. Es wird auch für CheckBoxList, RadioButtonList und DataList unterstützt, wenn diese in einem Table-Steuerelement angeordnet sind. Grundsätzlich können in HTML 3.2 nur als <table>-Tag dargestellte Steuerelemente eine Hintergrundfarbe ausgeben, während dies in HTML 4.0 für nahezu alle Elemente möglich ist. Bei als <span>-Tags dargestellten Steuerelementen wie Label-Steuerelementen, Steuerelementen für die Gültigkeitsprüfung und Listensteuerelementen im Flusslayoutmodus wird BackColor in Internet Explorer 5 und höher, jedoch nicht in Internet Explorer 4 unterstützt.
  • BorderColor wird in Downlevelbrowsern nur für dieselben auf Tabellen beruhenden Steuerelemente unterstützt, für die BackColor unterstützt wird. Es 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 wird von keinem Downlevelbrowser unterstützt. In HTML 3.2 gibt es kein Äquivalent für diese Eigenschaft.
  • BorderWidth wird für Steuerelemente unterstützt, die als <table> (Table, Panel, DataGrid und Calendar) oder als <img> (Image, AdRotator) dargestellt werden. BorderWidth wird von Downlevelbrowsern nur dann unterstützt, wenn die Breite in Pixel angegeben wird. Andernfalls erfolgt die Darstellung immer mit den Werten border=1 oder border=0. Bei auf Tabellen beruhenden Steuerelementen wird BorderWidth nur dann unterstützt, wenn GridLines auf einen anderen Wert als None festgelegt ist. Der Grund hierfür ist, dass in HTML 3.2 Rahmen nicht ohne Rasterlinien angegeben werden können. Bei als <span>-Tags dargestellten Steuerelementen wie Label-Steuerelementen, Steuerelementen für die Gültigkeitsprüfung und Listensteuerelementen im Flusslayoutmodus wird BorderWidth nur von Internet Explorer 5 oder höher, jedoch nicht von Internet Explorer 4 unterstützt.
  • CssClass wird unabhängig vom Browser stets als Klassenattribut dargestellt. Das Class-Attribut wird von den meisten Uplevelbrowsern erkannt.
  • Mit Enabled wird angegeben, ob ein Steuerelement die zugehörigen Ereignisse und Funktionen auslöst. Wenn in Internet Explorer 4 und höher Enabled auf False festgelegt ist, wird unter Verwendung des Attributs disabled=true das Steuerelement als nicht verfügbar und für die Eingabe gesperrt dargestellt.
  • Font-Bold, Font-Italic, Font-Strikeout und ähnliche Eigenschaften werden als Formatattribute für Uplevelbrowser (z. B. Font-Weight für fett und Font-Style für kursiv) und als unabhängige Elemente (z. B. <b> und <i>) für Downlevelbrowser wiedergegeben.
  • Font-Size wird von Downlevelbrowsern nur dann bei allen Steuerelementen unterstützt, wenn benannte Schriftgrößen verwendet werden (Klein, Kleiner usw.). Diese Eigenschaft wird in Uplevelbrowsern als Formatattribut und in Downlevelbrowsern als <font>-Element ausgegeben.
  • Font-Overline wird von keinem Downlevelbrowser unterstützt.
  • ForeColor wird von Downlevelbrowsern für sämtliche Steuerelemente außer Image, AdRotator, HyperLink und LinkButton unterstützt. ForeColor wird von Downlevelbrowsern als<font>-Tags dargestellt.
  • Height wird von Downlevelbrowsern nicht für Label-Steuerelemente, Steuerelemente für die Gültigkeitsprüfung, HyperLink- und LinkButton-Steuerelemente unterstützt. Wenn das Layout auf Flow festgelegt ist, wird Height auch nicht bei CheckBoxList-, RadioButtonList- und DataList-Steuerelementen unterstützt. Als Maßangaben sind nur Pixel oder Prozent zulässig. Bei auf Tabellen beruhenden Steuerelementen entspricht dies nicht dem HTML-Standard und wird nur von neueren Uplevelbrowsern unterstützt.
  • TabIndex wird von Downlevelbrowsern für kein Steuerelement unterstützt. Die Eigenschaft entspricht nicht dem HTML 4.0-Standard und wird nur von Internet Explorer 4 und höher unterstützt.
  • ToolTip wird von keinem Downlevelbrowser unterstützt.
  • Width wird von Downlevelbrowsern nicht für Label-Steuerelemente, Steuerelemente für die Gültigkeitsprüfung, HyperLink- und LinkButton-Steuerelemente unterstützt. Wenn das Layout auf Flow festgelegt ist, wird Width auch nicht bei CheckBoxList-, RadioButtonList- und DataList-Steuerelementen unterstützt. Als Maßangaben sind nur Pixel oder Prozent zulässig.

Table, Calendar, DataList, DataGrid, RadioButtonList und CheckBoxList

  • In HTML 3.2. kann GridLines nur entweder aktiviert oder deaktiviert sein. Jeder festgelegter Wert wird sowohl für horizontale als auch vertikale Rasterlinien dargestellt. Wie bereits erwähnt, kann kein Rahmen angegeben werden, wenn GridLines auf None festgelegt ist.

Calendar

  • ForeColor wird für vom Calendar-Steuerelement angezeigte Hyperlinks nur von Uplevelbrowsern der Version 4.0 und höher unterstützt, da diese Eigenschaft die Hyperlinkfarbe mit Hilfe eines Formatattributs zuweist.

Siehe auch

Feststellen von Browsertypen in Web Forms | Programmieren von Web Forms