Ich habe ein CustomValidator
auf mein Formular gesetzt. Ich habe seine Eigenschaft ControlToValidate
nicht festgelegt. In seinem ServerValidate
-Ereignis habe ich Folgendes geschrieben:
Ich gebe dieser Methode einen Haltepunkt, aber es scheint nie zu diesem Punkt zu kommen. Aber wenn ich das auf einer anderen Form mache, funktioniert es wie ein Zauber.
ValidationGroup
der Schaltfläche und die CustomValidator
sind identisch CustomValidator
zu löschen, funktioniert immer noch nicht. Es scheint so, als ob etwas ganz allgemein ist. Ich habe einfach ein CustomValidator
auf das Formular gesetzt und keine seiner Eigenschaften berührt, außer dass ich nur seine ServerValidate
-Ereignismethode gesetzt habe.
EDIT: Hier ist der aspx Teil:
%Vor% Versuchen Sie, die Validierung in dem Button-Klick-Handler über Bearbeiten (aus Kommentaren): Wenn Sie möchten, dass der customvalidator prüft, ob in Ihren Steuerelementen nichts eingegeben / ausgewählt wurde, müssen Sie Ich nehme an, dass die Validator-Reihenfolge auf dem aspx entscheidet, ob der severvalidate eines Custom Validators aufgerufen wird, wenn ein vorheriger Validator bereits Page.Validate
: ValidateEmptyText
bis true. Vielleicht möchten Sie auch, dass CustomValidator
das RequiredFieldValidators
ersetzt. Page.IsValid=false
erstellt hat. Oder ASP.NET ist so schlau, dass es annimmt, dass SeverValidate
teurer ist als eine einfache Text-leer-Prüfung.
Ich möchte auch etwas mehr Hilfe für diejenigen, die CustomValidators und RequiredFieldValidators zur gleichen Zeit verwenden. Man sollte berücksichtigen, dass die Validierung der Client-Seite zuerst stattfindet. Und die serverseitige Validierung findet erst nach PostBack statt. Ich bin mir sicher, dass Sie es verstanden haben, nur für den Fall, dass dies nicht ganz klar ist: Es bedeutet zuerst, dass alle Steuerelemente, die an bestimmte clientseitige Arbeitsvalidatoren gebunden sind, gültig sein müssen, damit Postback auftreten kann. Nach der Seite. IsValid ist True serverseitige Sachen und gibt alle Änderungen zurück, die serverseitige Validierungsnachrichten enthalten.
Hier sind die Möglichkeiten, wie man sowohl CustomVCalidators als auch andere eingebaute Validatoren gleichzeitig arbeiten lassen kann:
Setzen Sie beide Gruppen von Validatoren auf Client-Seite. In diesem Fall müssen wir sicherstellen, dass wir für das / die benutzerdefinierte (n) Valitor (s) das Skript, das die Validierung auf der Clientseite durchführt, spacifizieren werden. Ohne Skript zu schreiben und nur die ServerValidate-Methode auszufüllen, wird die Validierung auf dem Server stattfinden. Selbst wenn die EnableClientScript-Eigenschaft auf True gesetzt ist.
Legen Sie fest, dass beide Gruppen von Validatoren serverseitig arbeiten. Setzen Sie EnableClientScript einfach auf False. Beachten Sie jedoch, dass dadurch der Server geladen wird.
Tags und Links c# asp.net customvalidator