2010-12-12 20 views
3

J'ai un validateur et un champ de validation sur ma page.Pourquoi le validateur apparaît dans le validateur et le validateur Résumé

Lorsque cela arrive, que la page n'est pas valide, le texte apparaît sur le validateur lui-même et dans le récapitulatif de validation.

Qu'est-ce qui ne va pas?

<asp:RegularExpressionValidator ValidationGroup="Register" CssClass="validator" ForeColor="black" 
            ControlToValidate="txtRegisterEmail" ID="valMail" runat="server" 
            ValidationExpression=".*@.*\.(com|net|org|edu|mil|at?|de?|ch?|uk?)$" 
            ErrorMessage="Bitte geben Sie eine gültige EMail-Adresse ein." 
            EnableClientScript="false" 
            Display="Dynamic"></asp:RegularExpressionValidator> 


<asp:LinkButton CausesValidation="true" ValidationGroup="Register" ID="linkRegister" CssClass="linkWhite" runat="server" 
            onclick="linkRegister_Click">Jetzt Registrieren</asp:LinkButton><br /> 
            <br /> 
           <asp:ValidationSummary ValidationGroup="Register" ID="sumRegister" runat="server" 
           HeaderText="Folgende Fehler sind aufgetreten:" CssClass="validator" 
           ShowSummary="true" DisplayMode="BulletList" /> 

Répondre

9

Par définition, vous ne faites rien de mal.

Si vous souhaitez que le message de validation apparaisse uniquement dans le résumé, vous pouvez définir la propriété Display de votre contrôle de validation sur None.

Si vous ne souhaitez pas que le message apparaisse dans le résumé, vous pouvez utiliser la propriété ValidationGroup pour attribuer différents noms de groupes de validation à votre contrôle ValidationSummary et à votre contrôle de validation.

1

Si vous faites cela (remarquez l'astérisque après la "dynamic">):

<asp:RegularExpressionValidator 
    ValidationGroup="Register" CssClass="validator" ForeColor="black" 
    ControlToValidate="txtRegisterEmail" ID="valMail" runat="server" 
    ValidationExpression=".*@.*\.(com|net|org|edu|mil|at?|de?|ch?|uk?)$" 
    ErrorMessage="Bitte geben Sie eine gültige EMail-Adresse ein." 
    EnableClientScript="false" 
    Display="Dynamic">*</asp:RegularExpressionValidator> 

Vous obtiendrez un petit astérisque à côté des champs non valides, puis le message d'erreur apparaîtra dans le résumé de la validation. Dans mes applications, je trouve utile d'étiqueter les champs avec un petit astérisque (rouge), puis de demander à l'utilisateur d'afficher «ci-dessous», ou n'importe où vous êtes, la liste des erreurs de validation.