2012-03-25 6 views
0

Ich habe einen CustomValidator, der verwendet wird, um die Verfügbarkeit von Benutzernamen zu überprüfen, aber es wird nicht aufgerufen (ich habe es auch mit einem Breakpoint überprüft).CustomValidator wird nicht aufgerufen

<asp:CustomValidator ID="usernameC" runat="server" ErrorMessage="Username is already taken" ControlToValidate="txtUsername" Display="None" OnServerValidate="usernameC_ServerValidate" /> 

-Code-behind

protected void usernameC_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    if (new UsersBL().SearchUserByUsername(args.Value) == null) 
     args.IsValid = true; 
    else 
     args.IsValid = false; 
} 

Was kann das Problem sein?

+0

Warum setzen Sie Display = "None". Bitte setze es auf statisch. – PraveenVenu

+0

@PraVn Ich verwende ein ValidationSummary-Steuerelement – chris05

+0

Sie können 'ClientValidationFunction' Eigenschaft des' CustomValidator' verwenden und dann eine JavaScript-Funktion schreiben, um es auf der Clientseite zu überprüfen. – PraveenVenu

Antwort

1

Es wird aufgerufen, wenn die Seite auf dem Server veröffentlicht wird. z.B. Sie haben eine Asp: -Schaltfläche und wenn der Benutzer darauf klickt, wird die Seite an den Server gesendet und vor dem Aufruf des button_click-Ereignisses ruft sie die Server-Validierungsfunktion auf.

+0

Ich habe verstanden, was das Problem war, aber ist es möglich, wie jeder andere Validator (Autopostback) aufgerufen werden. Es kann unmöglich sein, da es sich um eine Serverseite anstatt um eine Clientseite handelt. – chris05

+0

was genau möchten Sie tun? Sie können Javascript verwenden, um Postback durchzuführen und dann die Validierungsfunktion –

+0

ja zu bekommen, das wäre meine ideale Wahl. – chris05