2010-12-12 78 views
3

我在我的頁面上有一個驗證器和一個validationsummery。爲什麼驗證器顯示在驗證器和驗證器摘要中

當它發生時,頁面無效,文本出現在驗證器本身和驗證摘要中。

我的錯誤是什麼?

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

回答

9

這是設計,你沒有做錯任何事情。

如果您希望驗證消息僅顯示在摘要中,您可以將驗證器控件的Display屬性設置爲None

如果您不希望該消息出現在摘要中,則可以使用ValidationGroup屬性爲您的ValidationSummary控件和驗證程序控件提供不同的驗證組名稱。

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> 

你會得到一個小星號下一任何無效的字段,然後將出現在驗證摘要錯誤消息。在我的應用程序中,我發現使用一些(紅色)星號標記字段很有幫助,然後讓用戶查看「下方」或總結的任何位置,以獲取驗證錯誤列表。