2009-05-20 31 views
0

Szenario: Ich versuche, ein Team (bestehend aus mehreren Personen) auf einer einzigen Seite einzufügen. Ich habe ein Web-Benutzer-Steuerelement, um jede Person einzufügen, und wenn ein Team mehrere Personen hat, werden mehrere Web-Benutzersteuerelemente gleichzeitig angezeigt.ASP.NET - Multiple ValidationSummary

Jeder Benutzer verfügt über eine ValidationSummary und mehrere Validatoren (alle in der gleichen Validierungsgruppe gruppiert, das Beispiel person1 für das Web-Benutzersteuerelement hat die Validierungsgruppe für die Validierungszusammenfassung und für jeden Validator den Wert "valGroup_Person1").

Das Problem besteht darin, dass bei der Validierung alle Fehler gruppiert und in allen Webbenutzer-Steuerelementen angezeigt werden, sodass jedes Webbenutzer-Steuerelement eine sehr lange Fehlerliste anzeigt. Das erwartete waren einzelne Fehlerlisten.

Gibt es eine Möglichkeit, ValidationSummary auf diese Weise zu erhalten?

Antwort

6

Wenn Sie asp.net 2.0 verwenden, dann müssen Sie Validierungsgruppe verwenden dies funktioniert.

siehe Beispiel unten sie voneinander

 

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" ValidationGroup="1">1</asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator2" ValidationGroup="2">2</asp:RequiredFieldValidator> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="1" /> <asp:ValidationSummary ID="ValidationSummary2" runat="server" ValidationGroup="2" /> <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="1" /> <asp:Button ID="Button2" runat="server" Text="Button" ValidationGroup="2" />

+0

Ich habe nur eine Taste alles einreichen ... – Sergio

+0

dann haben Sie es von der Serverseite zu überprüfen, oder Sie müssen die andere Validierung farmework.Built bei der Validierung bewegen dies nicht unterstützt. Siehe den folgenden Link http://dotnetslackers.com/Community/blogs/bmains/archive/2007/10/10/validation-summary-and-multiple-validation-groups.aspx –

+0

Sie müssen etwas wie folgt in Ihre Schaltflächen klicken Ereignis Page.Validate ("validationGroup") –

0

Sie müssen die Validierungsgruppen disambiguate, indem sie getrennte Namen auf jeder der Kontrollen funktionieren. Zum Beispiel in der Seite-init Benutzersteuerung:

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
    Dim uniqueGroupName = Guid.NewGuid.ToString 
    valSummary.ValidationGroup = uniqueGroupName 
    txtFirstName.ValidationGroup = uniqueGroupName 
    txtLastName.ValidationGroup = uniqueGroupName 
    btnFind.ValidationGroup = uniqueGroupName 
End Sub 

(für jede Kontrolle in der Gruppe, es programmatisch eine Validierungsgruppe geben)

Wenn Sie serverseitige Validierung tun, sollten Sie die Validierung nennen für nur die Gruppe, z

Page.Validate(valSummary.ValidationGroup) 
If Not Page.IsValid then Exit Sub 
... 
Verwandte Themen