2012-03-30 23 views
4

Ich habe erfolgreich einen Validator mehr als einmal benutzt, aber nach einigen Programmierungen funktionieren meine Validatoren nicht. Vielleicht weiß ich nichts über das Definieren von 2 Validatoren für das gleiche Steuerelement, aber es funktioniert nicht für einen Validator in einem Steuerelement either.Here sind 2 Beispiele für meinen Code:Warum funktioniert mein RangeValidator nicht?

Beispiel 1: ein erforderliches Feld validator und ein "Maximalwert" Validator für Benutzername:

<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" 
            ControlToValidate="UserNameTextbox" ForeColor="red" 
            Display="Dynamic" ErrorMessage="Required" /> 

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="UsernameTextbox" MinimumValue="1" MaximumValue="20" ForeColor="red" 
    Display="Dynamic" ErrorMessage="Name must contain maximum 20 characters"></asp:RangeValidator> 

Beispiel 2: ein "Maximalwert" Validator für roadaddress (Zeichenkette):

<asp:RangeValidator ID="RangeValidator9" runat="server" MaximumValue="50" ForeColor="red" 
      ErrorMessage="Road Address must contain maxmum 50 characters" ControlToValidate="RoadAddressTextbox"></asp:RangeValidator> 

Ich denke, dass das Problem vielleicht in der Anzeigeeigenschaft oder in der causesvalidation -Eigenschaft ist, die ich nicht verwende ...

+0

nein AJAX nein UpdatePanel .. – Dchris

Antwort

4

Das ist nicht, was die RangeValidator für verwendet wird. Die RangeValidator dient zur Überprüfung der Eingabe, um sicherzustellen, dass sie innerhalb eines bestimmten Bereichs liegt, dh um sicherzustellen, dass eine Zahl zwischen 1 und 5 liegt, dass ein Datum in einem bestimmten Bereich liegt usw.

Sie benötigen eine RegularExpressionValidator :

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
    ControlToValidate="UserNameTextbox" 
    ErrorMessage="Username must be between 1 and 50 characters" 
    ValidationExpression="^[a-zA-Z\s]{1,50}"> 
</asp:RegularExpressionValidator> 

EDIT: aktualisiert Ausdruck ^[a-zA-Z\s]{1,50}

Verwandte Themen