Ich habe 3 Arten von Validatoren:
Es ist Teil der Validierungsgruppe "VG1"
Es ist Teil der Validierungsgruppe "VG2"
Es gehört nicht zu den Validierungsgruppen
Ich habe zwei Tasten, B1 und B2.
Ich möchte B1.Click nur dann validieren, wenn alle Validatoren des ersten und dritten Typs die ihnen zugeordneten Steuerelemente erfolgreich validiert haben.
Ich möchte B2.Click nur dann validieren, wenn alle Validatoren des zweiten und dritten Typs die ihnen zugeordneten Steuerelemente erfolgreich validiert haben.
Ist das in ASP.NET möglich? Wenn ja, kannst du mir sagen, wie ich das machen kann oder wo könnte ich etwas lesen, das mich in dieser Frage aufklären würde?
BEARBEITEN:
%Vor%Dies funktioniert jedoch gut, wenn VG1 ungültig ist, dann verschwinden die Nachrichten aufgrund der Validierung der leeren Gruppe. Gibt es eine Lösung, um alle Validierungsfehlermeldungen anzuzeigen? Danke.
EDIT2:
%Vor%Die obige Funktion löst mein Problem.
Ich füge eine weitere Antwort hinzu, da das Hinzufügen zu meiner letzten Antwort die Antwort zu groß für jeden zum Lesen machen würde.
In dieser Antwort habe ich meine letzte Antwort erweitert, sodass mehrere Validierungsgruppen sowohl auf der Clientseite als auch auf der Serverseite automatically
angeschlossen sind. Dies bedeutet, dass Sie Page_ClientValidate("group1,group2")
in JavaScript onclick event of button nicht aufrufen müssen, da dies automatisch erfolgt. Außerdem wird die serverseitige Validierung für mehrere Gruppen automatisch durchgeführt.
Das Markup und der Code-Behind dafür sind unten angegeben. Sie können den von mir bereitgestellten ASPX-Code ausprobieren und in einem Website-Projekt testen. Um zu testen, ob eine automatische serverseitige Validierung stattfindet, müssen Sie EnableClientScript="false"
für jeden der drei Validatoren festlegen.
Erläuterung des Ansatzes für die automatische Validierung mehrerer Gruppen
Wenn Sie mehrere Validierungsgruppen implementieren möchten, müssen die folgenden Schritte auf Ihrer aspx-Seite ausgeführt werden. Stellen Sie sicher, dass Sie in Ihrem Markup eine durch Kommas begrenzte Liste von Validierungsgruppen für die Eigenschaft ValidationGroup
des Schaltflächensteuerelements angeben, wenn Sie mehrere Gruppen gleichzeitig validieren müssen.
IsValidationGroupMatch
überschreiben, indem Sie am Ende Ihrer aspx-Seite JavaScript hinzufügen (Der Code für diese Überschreibung wird am Ende des Markup-Codes unten angegeben und Sie können ihn in Ihre aspx-Seite kopieren und einfügen); Dies ist eine Standardmethode, die vom ASP.Net-Validierungs-Framework bereitgestellt wird. HookupValidationForMultipleValidationGroups
in Code-Behind im Page_Load-Ereignis für jede Schaltfläche mit mehreren Validierungsgruppen aufrufen (Sie können diese im Code-Snippet angegebene Methode in den Code-Behind Ihres aspx kopieren und einfügen Seite) Validate
überschreiben, um Funktionen für mehrere Validierungsgruppen hinzuzufügen, da dies in ASP.Net fehlt. (Sie können diese im Code-Snippet angegebene Methode kopieren und in den Code-Behind einfügen Ihrer Aspx-Seite) Markup von aspx mit mehreren Validierungsgruppen für eine Schaltfläche
%Vor%Code-Behind der obigen ASPX-Seite
%Vor%Ja, eine Schaltfläche kann mehr als eine Validierungsgruppe validieren.
Innerhalb des button_click können Sie die Gruppen als
validieren %Vor% Sie können Page_ClientValidate(validationgroup)
function verwenden, um eine Validierungsgruppe zu validieren.
wie
%Vor%Sie können versuchen
%Vor%Dies ist ein alter Beitrag, aber ich hatte das gleiche Problem in letzter Zeit und die Art, wie ich es gelöst habe, ist wie unten erklärt.
Sie können den in diesem Beitrag angegebenen Code in Ihr ASP.Net-Website-Projekt kopieren und selbst testen. Die erste Schaltfläche, d. H. Die auf der linken Seite, validiert gleichzeitig drei Validierungsgruppen im Gegensatz zu den anderen zwei Schaltflächen.
Fügen Sie einfach das JavaScript am Ende der aspx-Seite in den Code unten ein, in dem ich die Validierungsfunktion IsValidationGroupMatch
überschrieben habe, damit mehrere Gruppen validiert werden können. Wenn Sie dann mehrere Gruppen auf der Clientseite validieren möchten, müssen Sie die Funktion Page_ClientValidate("group1,group2,group6,group5")
aufrufen, an die Sie einfach eine durch Kommas getrennte Liste von Validierungsgruppen übergeben.
(HINWEIS: Denken Sie jedoch daran, dass Sie mit diesem Ansatz mehrere Validierungsgruppen nur auf der Clientseite validieren können. Dies überprüft NICHT automatisch auch mehrere Gruppen auf der Serverseite. Sie müssen die API-Funktion Page_ClientValidate
auf dem Client aufrufen -Seite, da die Validierung mehrerer Gruppen nicht automatisch vom ASP.Net-Framework eingebunden wird.)
Beispiel für einen aspx-Seitencode, mit dem mehrere Gruppen gleichzeitig auf der Clientseite überprüft werden können
%Vor%Tags und Links asp.net validation