Validierungssteuerelement
Eintrag zuletzt aktualisiert am: 11.01.2024
Validatoren (alias Validierungssteuerelemente) sind in
ASP.NET Server-
Steuerelemente in
ASP.NET Webforms, deren Aufgabe es ist, den Inhalt anderer Server-
Steuerelemente nach bestimmten Kriterien zu prüfen. Kriterien sind beispielsweise, ob ein Feld nicht leer ist (
RequiredFieldValidator), ob zwei Felder den gleichen Inhalt haben (
CompareValidator) oder ob der Wert in einem bestimmten Wertebe-reich liegt (
RangeValidator). Mit Hilfe von regulären Ausdrücken (RegularExpressionVa-lidator) oder eigenen Validierungsfunktionen können auch komplexere Regeln definiert wer-den (
CustomValidator). Schlägt die Gültigkeitsprüfung fehl, geben die Validierungs-Server-
Steuerelemente eine beliebige Meldung aus. Ein Server-
Steuerelement mit Namen Validati-onSummary kann die Meldungen aller einzelnen Validatoren zusammenfassen.
Die Validierungssteuerelemente arbeiten auf Wunsch nicht nur serverseitig, sondern können durch den Einsatz von clientseitigem Skriptcode Fehlermeldungen ohne
Postback zum Server erzeugen bzw. sie verhindern sogar den
Postback zum Server, bevor alle Eingaben korrekt sind.
Den Validierungssteuerelementen sind folgende Punkte gemein:
1. Sie beziehen sich auf ein Server-
Steuerelement mit Eingabemöglichkeit (z.B. auf ein Text-box- oder ein
ListBox-Control, aber nicht auf einen
Button oder ein
Label). Dieser Bezug wird in dem
Attribut ControlToValidate festgelegt. Ein Kontrollkästchen (Checkbox-Control) kann auch nicht validiert werden, denn dies ergibt in der Regel keinen Sinn: Ent-weder sind die beiden Zustände (an/aus) zugelassen oder aber man könnte auf das Kontrollkästchen verzichten. Den Fall, dass man ein Kontrollkästchen einbaut, um den Anwen-der explizit etwas bestätigen zu lassen (z.B. einen Vertrag), hat Microsoft aber nicht berück-sichtigt.
2. Sie nehmen den Platz eines
Label-Control ein, das aber nur sichtbar ist, wenn die Prüfung fehlgeschlagen ist. Der dann angezeigte Text wird im
Attribut ErrorMessage definiert. Die Ausgabe kann über die üblichen
Attribute (BackColor, BorderColor, Font, CssClass etc.) formatiert werden. Die Standarddarstellung ist rote Zeichenfarbe.
3. Das
Attribut Display legt fest, ob in dem erzeugten HTML-Dokument für die Fehlermel-dung Platz gehalten werden soll, auch wenn die Fehlermeldung nicht angezeigt wird, weil kein Fehler auftrat. Der Wert Static legt fest, dass Platz gehalten werden soll. Beim Wert Dynamic wird der Platz im Fehlerfall erst geschaffen. Der Wert None bedeutet, dass die Meldung auch im Fehlerfall nicht angezeigt werden soll. Dies ist nur sinnvoll, wenn die Feh-lermeldung dann entweder über ein ValidationSummary-Control ausgegeben wird oder aber Programmcode das Ergebnis der Validierung über das
Attribut IsValid abfragt.
4. Die Validierung kann mit Enabled="True|False" aktiviert oder deaktiviert werden.
5. Die Prüfung kann wahlweise nur auf dem Server oder aber auf dem Server und auf dem Client (via
JavaScript) ausgeführt werden. Dies wird festgelegt durch EnableClientScript="False|True".
6. In
ASP.NET 1.x existierte eine Einschränkung hinsichtlich der Validierungssteuerelemente: Alle Validierungssteuerelemente einer Seite werden immer angewendet, wenn eine Schalt-fläche oder ein Hyperlink mit Submit-Funktion in der Seite angeklickt wird. In
ASP.NET können nun Validierungssteuerelemente zu so genannten Validierungsgruppen zusammen-gefasst werden, sodass mehrere unabhängige Formulare pro Webform möglich sind. Die Va-lidierungsgruppe wird festgelegt, indem alle Validatoren, die zu einer Gruppe gehören, im
Attribut ValidationGroup dieselbe Zeichenkette enthalten.
Übersicht über die Validierungssteuerelemente
RequiredFieldValidator : Prüft, ob ein Eingabefeld leer ist
CompareValidator : Prüft, ob die Eingabe in zwei Feldern gleich ist. Das zweite Feld wird in dem
Attribut ControlToCompare festgelegt.
RangeValidator : Prüft, ob ein Eingabewert in einem bestimmten Wertebereich liegt (festgelegt durch die
Attribute MinimumValue und MaximumValue)
RegularExpressionValidator: Vergleicht den Eingabewert mit einem regulären Ausdruck. Der Ausdruck wird in ValidationExpression angegeben.
CustomValidator : Dieser Validator ruft eine benutzerdefinierte Funktion auf, die die Eingabe prüft und zurückgibt, ob diese gültig ist. Wahlweise kann clientseitig und/oder serverseitig geprüft werden. Für die clientseitige Prüfung muss dem
Attribut ClientValida-tionFunction der Name einer
DHTML-
Scripting-Funktion zugewiesen werden. Für die serverseitige Prüfung muss Code im Ereignis ServerValidate() hinterlegt werden. Der
CustomValidator wird gar nicht aufgerufen, wenn das Feld leer ist. Dies muss durch einen
RequiredFieldValidator separat geprüft werden.
Hinweise
Wenn Sie als Reaktion auf den Klick auf einen
Button einen Seitenübergang (z.B. mit Response.Redirect()) definiert haben, werden Sie keine Fehlermeldung zu sehen be-kommen, da der Browser umgeleitet wird. Sie müssen den Seitenübergang dann also davon abhängig machen, ob die Validierung aller
Steuerelemente erfolgreich war. Dies können Sie mit Page.IsValid prüfen.
If Page.IsValid Then
Response.Redirect("bestaetigung.aspx")
End If