我的页面上有验证器和验证码。
当它发生时,该页面无效,文本将出现在验证器本身和验证摘要中。
我错了什么?
<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" />
答案 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>
您将在任何无效字段旁边看到一个小星号,然后错误消息将出现在验证摘要中。在我的应用程序中,我发现使用一个小(红色)星号标记字段是有帮助的,然后让用户看起来在“下面”,或者在您汇总的位置,以获得验证错误列表。