TOC

This article has been localized into German by the community.

Validierung:

Vergleichs Validierung

Der CompareValidator (vergleichs-validierung) ist möglicherweise nicht der am häufigsten verwendete Validator der Gruppe, aber in einigen Fällen immer noch nützlich. Er kann zwei Werte vergleichen, beispielsweise die Werte von zwei Steuerelementen. Im nächsten Beispiel zeige ich Ihnen ein kleines Beispiel, wie er verwendet werden kann.

Small number:<br />
<asp:TextBox runat="server" id="txtSmallNumber" /><br /><br />
Big number:<br />
<asp:TextBox runat="server" id="txtBigNumber" /><br />
<asp:CompareValidator runat="server" id="cmpNumbers" controltovalidate="txtSmallNumber" controltocompare="txtBigNumber" operator="LessThan" type="Integer" errormessage="The first number should be smaller than the second number!" /><br />

Wie Sie sehen, verwenden wir nur einen Validator, um die beiden Felder zu validieren. Es mag ein bisschen überwältigend wirken, aber es ist eigentlich ganz einfach. Wie beim RequiredFieldValidator verwenden wir das controltovalidate-Attribut, um anzugeben, welches Steuerelement überprüft werden soll. Darüber hinaus geben wir ein zu vergleichendes Steuerelement an. Das Operatorattribut gibt an, welche Methode beim Vergleich verwendet werden soll. In diesem Fall verwenden wir den LessThan-Operator, da wir möchten, dass das erste Steuerelement den kleinsten Wert hat. Wir setzen den Typ auf Ganzzahl, weil wir Ganzzahlen vergleichen wollen. Daten, Zeichenfolgen und andere Werttypen können ebenfalls verglichen werden.

Versuchen Sie nun, die Website auszuführen, und testen Sie die beiden neuen Felder. Folgendes passiert, wenn Sie das Formular nicht korrekt ausfüllen:

Wenn Sie die Nummern wechseln, werden Sie eine weitere coole Sache zu den ASP.NET-Validatoren und clientseitigen Skripten sehen: Die Validierung wird auch beim Verlassen der Felder durchgeführt. Wenn Sie dies nicht möchten, können Sie clientseitige Skripterstellung mit dem Attribut enableclientscript deaktivieren. Sie können ein Feld auch mit einem statischen Wert vergleichen. Entfernen Sie dazu das Attribut controltocompare und fügen Sie das Attribut valuetocompare hinzu.

Wie Sie vielleicht bemerkt haben, wird der Inhalt der beiden Textfelder vor dem Vergleich nicht überprüft. Zum Beispiel wäre es möglich, nichts oder einen Text anstelle einer Zahl einzugeben. Sie sollten dies immer berücksichtigen, wenn Sie den CompareValidator verwenden. Sie können mit dem RequiredFieldValidator vor leeren Feldern und mit einem RegularExpressionValidator vor falschen Werten wie Text schützen. Wir zeigen Ihnen später, wie Sie diese verwenden.

Wenn die clientseitige Validierung nicht funktioniert, wird das ungültige Formular von unserem Code in der CodeBehind-Datei abgefangen, wie mit dem RequiredFieldValidator gezeigt. Das ist wichtig.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!