为什么Validator在Validator和Validator Summary中显示

时间:2010-12-12 11:59:43

标签: asp.net validation

我的页面上有验证器和验证码。

当它发生时,该页面无效,文本将出现在验证器本身和验证摘要中。

我错了什么?

 <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" />

2 个答案:

答案 0 :(得分:9)

这是设计上的,你没有做错任何事。

如果您希望验证消息仅显示在摘要中,则可以将验证程序控件的Display属性设置为None

如果您不希望消息显示在摘要中,则可以使用ValidationGroup属性为您的ValidationSummary控件和验证程序控件提供不同的验证组名称。

答案 1 :(得分:1)

如果你这样做(注意"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>

您将在任何无效字段旁边看到一个小星号,然后错误消息将出现在验证摘要中。在我的应用程序中,我发现使用一个小(红色)星号标记字段是有帮助的,然后让用户看起来在“下面”,或者在您汇总的位置,以获得验证错误列表。