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