Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 8 Webserversteuerelemente
|  | 8.1 Webserversteuerelemente formatieren
|  |  | 8.1.1 Die FontInfo-Klasse
|  |  | 8.1.2 Die System.Drawing.Color-Struktur
|  |  | 8.1.3 Die Klasse Unit und die Enumeration UnitType
|  | 8.2 Button
|  |  | 8.2.1 OnClick
|  |  | 8.2.2 OnCommand
|  | 8.3 LinkButton
|  | 8.4 ImageButton
|  | 8.5 HyperLink
|  | 8.6 Label
|  | 8.7 Literal
|  | 8.8 Panel
|  | 8.9 TextBox
|  |  | 8.9.1 Mit JavaScript den Fokus setzen
|  | 8.10 CheckBox
|  | 8.11 Image
|  | 8.12 Webserversteuerelemente für Tabellen
|  | 8.13 RadioButton
|  | 8.14 Calendar
|  | 8.15 AdRotator
|  | 8.16 E-Mails versenden
|  |  | 8.16.1 Versand von E-Mails mit der Klasse SmtpMail
|  |  | 8.16.2 E-Mails mit der Klasse MailMessage erstellen
# Kapitel 8 Webserversteuerelemente Webserversteuerelemente generieren HTML- und JavaScript-Code. Den Entwickler entlasten sie von den Details der Umsetzung. Der erzeugte Code funktioniert in allen gängigen Browsern. HTML-Serversteuerelemente gehen vom HTML-Code aus und bieten für jedes HTML-Element eine eigene ASP.NET-Klasse. Webserversteuerelemente gehen den umgekehrten Weg. Sie gehen von einer allgemeinen Funktionalität aus, etwa der Funktionalität eines Eingabefelds, und generieren den dafür erforderlichen HTML-Quellcode. Je nach den gewählten Optionen können dabei unterschiedliche HTML-Elemente erzeugt werden, etwa input type="text"- oder textarea-Elemente. Wer Webserversteuerelemente einsetzt, benutzt ASP.NET als HTML-Codegenerator. Auch Webserversteuerelemente müssen stets innerhalb eines form-Elements platziert sein:
    <form runat="server" >
    .... Webserversteuerelemente u. a. ...
    </form>
Einerseits gibt es relativ einfache Webserversteuerelemente wie etwa den Button. Dieser generiert stets ein input type="submit"- oder input type="button"-Element, je nachdem, welche Optionen der Entwickler gewählt hat. Auf der anderen Seite gibt es sehr komplexe Webserversteuerelemente wie etwa das Calendar-Element, das nicht ein einzelnes HTML-Element, sondern seitenweise HTML- und JavaScript-Code generiert. Ob der erzeugte HTML-Code browserunabhängig ist oder nicht, hängt im Wesentlichen vom Entwickler ab. Ein Entwickler kann stets auch solche Attribute verwenden, die nur vom Internet Explorer ab der Version 4.0 interpretiert werden. Er muss es aber nicht. Auch bei der Entwicklung mit ASP.NET gilt der Grundsatz, dass Webanwendungen möglichst mit mehreren Browsern getestet werden sollten. Bei eigenen Tests hat sich aber gezeigt, dass etwa der Netscape-Browser mit dem generierten Code gut zurechtkommt.
Achtung Das größere Problem besteht eher darin, dass manche Webserversteuerelemente auf aktiviertes JavaScript angewiesen sind, weil sie sonst nicht funktionieren. Bei der Entwicklung einer konkreten Webanwendung steht daher die Grundsatzentscheidung an, ob man nur solche Browser unterstützen will, die JavaScript aktiviert haben, oder ob man auch Browser mit deaktiviertem JavaScript unterstützen will. Business-Websites werden die Anforderungen an die Browser stets möglichst gering halten, um nicht unnötig Besucher zu vergraulen. Insbesondere die Navigation durch eine Website sollte nicht von JavaScript abhängig gemacht werden, da man sonst etwa zehn Prozent aller Besucher von vornherein ausschließt.
In den folgenden Erläuterungen wird jeweils ausdrücklich darauf hingewiesen, wenn ein Webserversteuerelement nur mit aktiviertem JavaScript funktioniert. Im Quellcode einer aspx-Seite erscheinen Webserversteuerelemente stets mit dem Präfix asp:, z. B.
    <asp:Label runat="server">Hier steht etwas </asp:Label>
Auch Webserversteuerelemente müssen stets über das Attribut runat="server" verfügen. Auf den folgenden Seiten werden alle Webserversteuerelemente vorgestellt. Zu jedem Webserversteuerelement gibt es zunächst eine Art Steckbrief in tabellarischer Form, der wesentliche Informationen übersichtlich zusammenfasst. Dazu gehören
| der Klassenname,
| die Deklaration des Steuerelements,
| der erzeugte HTML-Code und
| eine Kurzcharakteristik.
Im Anschluss an den Steckbrief wird anhand von Beispielen die konkrete Verwendung erläutert. ## 8.1 Webserversteuerelemente formatieren Alle Webserversteuerelemente, die von der Klasse System.Web.UI.WebControls.WebControl abgeleitet sind – und das sind die meisten –, haben eine Reihe von Eigenschaften gemeinsam. Diese gemeinsamen Eigenschaften betreffen hauptsächlich Angaben zur Formatierung wie die verwendete Schriftart, Größe, Breite usw. Tabelle 8.1 nennt diese gemeinsamen Eigenschaften, die jeweils als Attribut im Quellcode gesetzt werden können.
Attribut | Beschreibung
--- | ---
AccessKey | Tastenkombination über die Alt-Taste. Funktioniert aber nur im Internet Explorer ab Version 4.0
Attributes | Diese Eigenschaft kann aus dem Programmcode heraus verwendet werden, um zusätzliche Attribute abzufragen, die der Entwickler individuell den Webserversteuerelementen gegeben hat.
BackColor | Hintergrundfarbe, z. B. BackColor="black" oder BackColor="#0033FF"
BorderColor | Rahmenfarbe
BorderWidth | Rahmenstärke in Pixel, falls ein Rahmen vorhanden ist. Funktioniert nicht bei allen Webserversteuerelementen und nicht bei allen Browsern.
BorderStyle | Rahmenformat, soweit zutreffend. Mögliche Werte: NotSet, None, Dotted, Dashed, Solid, Double, Groove, Ridge, Inset, Outset
CssClass | Zugehörige CSS-Klasse
Style | CSS-Attribute. Wenn es eigene Attribute gibt, wie etwa BackColor, werden jedoch diese Angaben verwendet.
Enabled | Bei False wird das Steuerelement ausgeblendet.
EnableViewState | True, wenn das Steuerelement seinen Anzeigestatus behalten soll.
Font | Schriftart. Hier gibt es eine Reihe von Untereigenschaften, die über die FontInfo-Klasse definiert werden: Font-Bold, Font-Italic, Font-Name, Font-Names, Font-Overline, Font-Size, Font-Strikeout, Font-Underline.
ForeColor | Vordergrundfarbe. Wird ab IE 4.0 unterstützt, steht aber nicht bei allen Steuerelementen zur Verfügung
Height | Fixe Höhe
TabIndex | Position des Steuerelements in der Aktivierreihenfolge. Ab IE 4.0
ToolTip | Text, der angezeigt wird, wenn der Mauszeiger auf das Steuerelement zeigt. Wird nicht von allen Browsern unterstützt
Width | Fixe Breite
Tabelle 8.1 Gemeinsame Eigenschaften der Webserversteuerelemente Wenn Sie die Formatierungsmöglichkeiten testen, wird sich schnell die Frage einstellen, wie das Aussehen eines Objekts programmgesteuert beeinflusst werden kann. Das Verfahren erschließt sich oft nicht auf Anhieb, weil sich die Art der Deklaration im HTML-Code nicht mit der Verwendung im VB.NET-Code deckt. Einige Beispiele sollen verdeutlichen, was damit gemeint ist. Die Seite webserver_formatierung01.aspx zeigt eine OK-Schaltfläche an. Wenn man auf die Schaltfläche klickt, verändert sie ihr Aussehen (siehe Abbildung 8.1).
    <!-- webserver_formatierung01.aspx -->
    <%@ Page Language="VB" Debug="True" Strict="True" %>
    <script runat="server">
    Sub btnOK_Click (Sender As Object, E As EventArgs)
       If btnOK.Font.Bold = True Then
          btnOK.Font.Bold = false
          btnOK.ForeColor = System.Drawing.Color.Blue
          btnOK.BackColor = _
                System.Drawing.Color.FromArgb(255,192,102)
          btnOK.BorderWidth = New Unit(20, UnitType.Pixel)
       Else
          btnOK.Font.Bold = true
          btnOK.ForeColor = System.Drawing.Color.White
          btnOK.BackColor = System.Drawing.Color.Black
          btnOK.BorderWidth = New Unit(5, UnitType.Pixel)
       End If
    End Sub
    </script>
    <html><head>
    <title>Webserversteuerelemente: Button</title>
    </head><body>
    <form runat="server" id ="myForm">
    <asp:Button id="btnOK"
                Text=" OK "
                runat="server"
                OnClick="btnOK_Click"
                Font-Bold="true"
                ForeColor="white"
                BackColor="#00AA00"
                BorderWidth="5"
                BorderColor="red"/>
    </form >
    </body></html>
Im folgenden Abschnitt über das Button-Steuerelement wird die Funktionsweise einer Schaltfläche näher erläutert. Hier soll es zunächst nur um die grafische Gestaltung gehen. ### 8.1.1 Die FontInfo-Klasse Die Eigenschaften der verwendeten Schrift stehen innerhalb der Deklaration über diverse Font-...-Eigenschaften zur Verfügung. Die aspx-Seite setzt beispielsweise die Eigenschaft Font-Bold="true". Diese Eigenschaft wird auch in der Ereignisprozedur btnOK_Click beeinflusst. Hier lautet der Code:
    btnOK.Font.Bold = true
Es heißt also nicht btnOK.Font-Bold = true, weil es eine Eigenschaft Font-Bold gar nicht gibt. Stattdessen liefert die Eigenschaft Font des Button-Steuerelements ein Objekt vom Typ FontInfo. Die Klasse FontInfo verfügt über eine Reihe von Eigenschaften, mit denen sich die typischen Auszeichnungen für die Schriftformatierungen vornehmen lassen, darunter auch die Eigenschaft Bold. So kommt es zu der Formulierung btnOK.Font.Bold. ### 8.1.2 Die System.Drawing.Color-Struktur Andere Attribute des Button-Steuerelements stehen direkt als Eigenschaft dieses Steuerelements zur Verfügung. Dazu zählt beispielsweise ForeColor. Die Deklaration verwendet beispielsweise die Zuweisung ForeColor="white". Die Prozedur btnOK_Click() setzt ebenfalls die Vordergrundfarbe, etwa in dieser Zeile:
    btnOK.ForeColor = System.Drawing.Color.Blue
Das Button-Steuerelement kennt die Eigenschaft ForeColor und diese ist vom Typ Color, genauer gesagt: System.Drawing.Color. Dabei handelt es sich um eine Struktur (keine echte Klasse, sondern eine Struktur), die die Definition von Farben über zahlreiche Eigenschaften und Methoden ermöglicht. Viele Farben sind direkt als Eigenschaft definiert. Das beginnt bei AliceBlue und endet mit YellowGreen. Der Beispielcode ruft eine solche vordefinierte Farbe mit System.Drawing.Color.Blue ab.
Achtung Ein Ausdruck wie btnOK.ForeColor="yellow" ist demgegenüber nicht möglich, weil der ForeColor-Eigenschaft kein String zugewiesen werden kann.
Hier klicken, um das Bild zu Vergrößern Abbildung 8.1 Beim Anklicken verändert die Schaltfläche ihre Form. So ähnlich verhält es sich, wenn Sie keine vordefinierte Farbe verwenden, sondern eine Farbe über einen RGB-Wert festlegen möchten. Die Art der Deklaration im HTML-Code ist bekannt: BackColor="#00AA00". Innerhalb des VB.NET-Codes hilft wieder die Color-Struktur weiter:
    btnOK.BackColor = _
             System.Drawing.Color.FromArgb(255,192,102)
Die Methode FromArgb() liefert ein Color-Objekt, dessen RGB-Werte Sie der Methode einzeln übergeben. ### 8.1.3 Die Klasse Unit und die Enumeration UnitType Einen weiteren Stolperstein liefert diese unscheinbare Zuweisung in der Deklaration: BorderWidth="5". Das Button-Steuerelement kennt zwar die Eigenschaft BorderWidth. Diese ist aber nicht vom Typ Integer, sondern benötigt ein Objekt vom Typ Unit. Die Klasse Unit kennt verschiedene Konstruktoren. btnOK_Click() verwendet eine der Varianten:
    btnOK.BorderWidth = New Unit(5, UnitType.Pixel)
Als erster Parameter wird die Zahl 5 übergeben. Der zweite Parameter legt die Einheit fest. Die Enumeration UnitType stellt verschiedene Einheiten zur Verfügung. Das Beispiel ruft UnitType.Pixel auf.
Tipp Wenn Sie Schwierigkeiten haben sollten, einzelne Merkmale von Steuerelementen programmgesteuert zu kontrollieren, dann sollten Sie zunächst in der Online-Dokumentation nach dem entsprechenden Steuerelement und der zugehörigen Eigenschaft suchen. Wie die Beispiele gezeigt haben, sind diese Eigenschaften oft nicht vom Typ String oder Integer, sondern sie verwenden andere Klassen des .NET Frameworks.
Wenn Sie diesen benötigten Typ erst einmal entdeckt haben, dann haben Sie das größte Problem bereits gelöst. Anschließend werden Sie über die Online-Dokumentation rasch in Erfahrung bringen können, wie Sie ein Objekt vom gewünschten Typ erzeugen können.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de