Die Validierungskontrollen von ASP.NET validieren vom Benutzer eingegebene Daten, um sicherzustellen, dass nutzlose, nicht autorisierte und widersprüchliche Daten nicht gespeichert werden können.
ASP.NET bietet die folgenden Aspekte der Validierungskontrolle:
RequiredFieldValidator
RangeValidator
CompareValidator
Validator für reguläre Ausdrücke (RegularExpressionValidator)
Benutzerdefinierter Validator (CustomValidator)
Kontrolle der Validierungszusammenfassung (ValidationSummary)
Validierungsklassen erben von der BaseValidator-Klasse, also erben sie deren Eigenschaften und Methoden. Daher wird das Erlernen der Eigenschaften und Methoden dieser Grundklasse, die die Grundlage aller Wirksamkeitskontrollen ist, für das spätere Lernen von großem Nutzen sein:
Komponenten | beschreiben |
---|---|
ControlToValidate | Ruft das zu validierende Eingabesteuerelement ab oder legt es fest. |
Anzeige | Beschreiben Sie, wie Fehlermeldungen angezeigt werden. |
EnableClientScript | Gibt an, ob der Client die Verifizierung übernommen hat. |
Ermöglicht | Aktivieren oder deaktivieren Sie den Validator. |
Fehlermeldung | Eine Zeichenfolge, die den Fehler beschreibt. |
Text | Text, der angezeigt werden soll, wenn die Validierung fehlschlägt. |
Ist gültig | Gibt an, ob der Kontrollwert gültig ist. |
SetFocusOnError | Ob der Fokus auf das relevante Eingabesteuerelement gesetzt werden soll, wenn die Validierung fehlschlägt. |
Validierungsgruppe | Ruft den Namen der Validierungsgruppe ab, zu der dieses Validierungssteuerelement gehört, oder legt diesen fest. |
Bestätigen | Führt eine Validierung des zugehörigen Eingabesteuerelements durch und aktualisiert die IsValid-Eigenschaft. |
Das RequiredFieldValidator-Steuerelement stellt sicher, dass erforderliche Felder nicht leer sind. Es ist hauptsächlich an das Textfeld gebunden, um dem Benutzer die Eingabe in das Textfeld zu ermöglichen.
Die Syntax für dieses Steuerelement lautet wie folgt:
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
Das RangeValidator-Steuerelement ist dafür verantwortlich, zu überprüfen, ob der eingegebene Wert innerhalb des voreingestellten Bereichs liegt.
Es hat drei spezifische Eigenschaften:
Eigentum | beschreiben |
---|---|
Typ | Es definiert den Datentyp. Zu den verfügbaren Datentypen gehören: Währung, Datum, Double, Integer und String |
Mindestwert | Es gibt den Mindestwert im Bereich an |
Maximalwert | Es gibt den Maximalwert im Bereich an |
Die Syntax dieses Steuerelements lautet wie folgt:
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
Das CompareValidator-Steuerelement validiert einen Wert basierend auf dem in ein anderes Eingabesteuerelement eingegebenen Wert, einem konstanten numerischen Wert oder dem richtigen Datentyp.
Es hat die folgenden spezifischen Eigenschaften:
Eigentum | beschreiben |
---|---|
Typ | Es definiert den Datentyp. |
ControlToCompare | Es gibt den Wert im Eingabesteuerelement an, der verglichen werden muss. |
ValueToCompare | Es gibt einen Wert an, der sich im Eingabesteuerelement nicht ändert. |
Operator | Es gibt den Vergleichsoperator an: Gleichheit, Ungleichheit, größer oder gleich, kleiner als, kleiner oder gleich und Datentypprüfung. |
Die grundlegende Syntax dieses Steuerelements lautet wie folgt:
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
Mit dem RegularExpressionValidator-Steuerelement können Sie die Gültigkeit einer Eingabe bestimmen, indem Sie sie mit einem regulären Ausdruck abgleichen. Der reguläre Ausdruck wird in der ValidationExpression-Eigenschaft festgelegt.
Die folgende Tabelle fasst die Syntaxstrukturen zusammen, die häufig in regulären Ausdrücken verwendet werden:
Escape-Charakter | beschreiben |
---|---|
B | Entspricht der Rücktaste. |
T | Registerkarte „Übereinstimmungen“. |
R | Entspricht der Eingabetaste. |
v | Entspricht vertikalen Tabulatorzeichen. |
F | Entspricht dem Formular-Feed-Zeichen. |
N | Passen Sie Zeilenumbrüche an. |
Escape-Charakter. |
Zusätzlich zur einfachen Zeichenübereinstimmung kann eine Art von Zeichen für die Übereinstimmung festgelegt werden. Diese Zeichen werden als Platzhalter bezeichnet.
Platzhalter | beschreiben |
---|---|
. | Kann mit jedem Zeichen außer n übereinstimmen. |
[abcd] | Kann mit jedem Zeichen im Satz übereinstimmen. |
[^abcd] | Schließen Sie alle Zeichen aus dem Satz aus. |
[2-7a-mA-M] | Entspricht jedem Zeichen innerhalb eines bestimmten Bereichs. |
w | Entspricht einer beliebigen alphanumerischen Zeichengruppe und dem Unterstrich. |
W | Entspricht jedem Zeichen, das kein Wort ist. |
S | Passen Sie Zeichen wie Leerzeichen, Tabstopps, Zeilenumbrüche usw. an. |
S | Entspricht jedem Zeichen, das kein Leerzeichen ist. |
D | Entspricht jedem Dezimalzeichen. |
D | Entspricht jedem nicht-dezimalen Zeichen. |
Quantifizierer können eine bestimmte Anzahl von Wörtern angeben, in denen ein Zeichen vorkommt.
Quantor | beschreiben |
---|---|
* | Keine oder mehr Übereinstimmungen. |
+ | Eine oder mehrere Übereinstimmungen. |
? | Keine oder eine Übereinstimmung. |
{N} | N Übereinstimmungen. |
{N,} | N oder mehr Übereinstimmungen. |
{N,M} | Spiel zwischen N und M. |
Die grundlegende Syntax dieses Steuerelements lautet wie folgt:
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
Das CustomValidator-Steuerelement ermöglicht das Schreiben client- und serverseitiger spezifischer Validierungsroutinen zur Validierung von Werten.
Die Clientvalidierung erfolgt entsprechend über ClientValidationFunction. Clientseitige Validierungsroutinen sollten in einer Skriptsprache geschrieben sein, die der Browser versteht, beispielsweise JavaScript oder VBScript.
Serverseitige Validierungsroutinen sollten vom ServerValidate-Ereignishandler des Steuerelements generiert werden. Serverseitige Validierungsroutinen sollten in einer beliebigen .NET-Sprache geschrieben werden, beispielsweise C# oder VB.Net.
Die grundlegende Syntax dieses Steuerelements lautet wie folgt:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
Das ValidationSummary-Steuerelement führt keine Validierung durch, sondern zeigt eine Zusammenfassung aller Fehler auf der Seite an. Diese Zusammenfassung zeigt die Werte der ErrorMessage-Eigenschaft aller fehlgeschlagenen Validierungskontrollen an.
Die folgenden zwei sich gegenseitig einschließenden Attributlisten listen Fehlermeldungen auf:
ShowSummary : Fehlerinformationen in einem speziellen Format anzeigen.
ShowMessageBox : Fehlermeldungen in einem separaten Fenster anzeigen.
Die grundlegende Syntax dieses Steuerelements lautet wie folgt:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
Komplexe Seiten enthalten unterschiedliche Informationssätze auf verschiedenen Ebenen. In diesem Fall verfügen verschiedene Gruppen über unterschiedliche Überprüfungen. Diese Situation kann durch die Verwendung von Überprüfungsgruppen gelöst werden.
Um eine Validierungsgruppe zu erstellen, müssen Sie das Eingabesteuerelement und das Validierungssteuerelement in derselben logischen Gruppe platzieren, indem Sie ihre ValidationGroup-Eigenschaften festlegen.
Das folgende Beispiel beschreibt ein vierteiliges Formular, das von der gesamten Schule für die Präsidentschaftskandidatur ausgefüllt wird. Hier verwenden wir Validierungskontrollen, um zu validieren, was der Benutzer eingibt.
So sieht es in der Entwurfsansicht aus:
Der Code für diesen Teil lautet wie folgt:
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="Präsidentenwahlformular: Wählen Sie Ihr Präsident" runat="server" /> </td> </tr> <tr> <td> Kandidat: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>Bitte wählen Sie einen Kandidaten</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</ asp:ListItem> <asp:ListItem>Venus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Bitte wählen Sie einen Kandidaten aus" InitialValue="Bitte wählen Sie einen Kandidaten aus"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> Haus: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Rot</asp:ListItem> <asp:ListItem>Blau</asp:ListItem> <asp:ListItem>Gelb</asp:ListItem> <asp:ListItem>Grün</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Geben Sie Ihren Hausnamen ein" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> Klasse: </td> <td> <asp:TextBox ID="txtclass " runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Geben Sie Ihre Klasse ein (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> E-Mail: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Geben Sie Ihre E-Mail-Adresse ein" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text= "Submit" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Fehler:" /></form>
Der Code für die Schaltfläche „Senden“ lautet wie folgt:
protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Thank You" } else { lblmsg.Text = "Alle Felder ausfüllen" }}