Ich habe eine ziemlich große ASPX-Formular mit vielen Textfelder und Dropdown-Listen zum Ausfüllen. Die meisten Textfelder haben RequiredFieldValidator Steuerelemente und diese funktionieren gut.CustomValidator Steuerelement funktioniert nicht in. NET
Allerdings habe ich 3 Textfelder für Home, Mobile und Arbeit Telefonnummern. Jedes Textfeld ist optional, aber wenn es ausgefüllt ist, muss der Wert numerisch sein. Ich muss das Format der Telefonnummer zu diesem Zeitpunkt nicht überprüfen, nur sicherstellen, dass es numerisch ist.
Die Client-Seite Code für eines der Felder sieht so aus:
<asp:Label ID="lblWorkPhone" runat="server" AssociatedControlID="txtWorkPhone" Text="<%$ Resources: Registration, WorkPhone %>" /><br />
<asp:TextBox ID="txtWorkPhone" runat="server" />
<asp:CustomValidator ID="validateWorkPhone" runat="server"
ValidationGroup="reg" ControlToValidate="txtWorkPhone" ForeColor="Red"
ErrorMessage="<%$ Resources: Registration, HomePhoneNumber %>"
Text="<%$ Resources: Registration, RequireMessage %>"
onservervalidate="validateWorkPhone_ServerValidate" />
Die serverseitige Validierungsmethode ist hier:
protected void validateWorkPhone_ServerValidate(object source, ServerValidateEventArgs args)
{
long temp = 0;
long.TryParse(txtWorkPhone.Text, out temp);
if (temp == 0)
{
args.IsValid = false;
validateWorkPhone.IsValid = true;
}
else
{
args.IsValid = true;
validateWorkPhone.IsValid = false;
}
}
Soweit ich die Server-seitige Validierungsmethode kann sagen, feuert überhaupt nicht. Alle anderen Validierungssteuerelemente auf der Seite scheinen zu funktionieren.
Kann jemand helfen?
Haben Sie versucht, das 'txtWorkPhone'-Steuerelement zur' reg'-ValidationGroup hinzuzufügen? – Widor
Ja, ich habe das auch versucht und es machte keinen Unterschied –