2009-05-20 8 views
0

Scénario: J'essaie d'insérer une équipe (composée de plusieurs personnes) sur une seule page. J'ai un contrôle de l'utilisateur Web pour insérer chaque personne, et quand une équipe a plusieurs personnes, plusieurs contrôles utilisateur Web sont affichés en même temps. Chaque utilisateur a un ValidationSummary et plusieurs validateurs (tous regroupés dans le même groupe de validation, par exemple le contrôle d'utilisateur web person1 a le groupe de validation sur le résumé de validation et sur chaque validateur défini sur "valGroup_Person1"). Le problème est que lorsque la validation se produit, toutes les erreurs sont groupées et affichées dans toutes les commandes de l'utilisateur Web, ce qui fait que chaque contrôle d'utilisateur Web affiche une liste d'erreurs très longue. Les attentes étaient des listes d'erreurs individuelles.ASP.NET - Multiple ValidationSummary

Existe-t-il un moyen d'exécuter ValidationSummary de cette façon?

Répondre

6

Si vous utilisez asp.net 2.0, vous devez utiliser un groupe de validation, cela fonctionnera.

Voir l'exemple ci-dessous fonctionnera

 

<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

Je n'ai qu'un bouton pour envoyer tout ... – Sergio

+0

alors vous devez vérifier du côté serveur ou vous devez passer à l'autre farmework.Built de validation dans la validation ne supporte pas. Voir le lien ci-dessous http://dotnetslackers.com/Community/blogs/bmains/archive/2007/10/10/validation-summary-and-multiple-validation-groups.aspx –

+0

Vous avez besoin de quelque chose comme suivre dans vos boutons cliquez sur l'événement Page.Validate ("validationGroup") –

0

Vous devez désambiguïser les groupes de validation les uns des autres en leur donnant des noms distincts sur chacun des contrôles. Par exemple, dans le de contrôle utilisateur Page-init:

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 

(pour chaque contrôle dans le groupe, donnent programme un groupe de validation)

Si vous faites la validation côté serveur, vous devez appeler la validation pour juste le groupe, par exemple

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