0

我的表单上有几个必填字段和正则表达式。验证在单击按钮时触发。单击按钮时,错误消息将显示asp:RequiredField声明的位置而不是验证摘要中的位置。这是我的代码:

验证摘要:

<asp:ValidationSummary id="mySummary" DisplayMode="List" HeaderText="Error:" EnableClientScript="true" ShowSummary="true" runat="server" ValidationGroup="valGroup" />

必填字段/正则表达式:

<!-- Required -->
<asp:RequiredFieldValidator ID="reqField1" ControlToValidate="txtSomething" ErrorMessage="Something is required" runat="server" Display="Static" InitialValue="" ValidationGroup="valGroup" />
<!-- Regex -->
<asp:RegularExpressionValidator runat="server" id="regexField1" ControlToValidate="txtSomething" 
    ErrorMessage="Something in the wrong format."  ValidationExpression="^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$" ValidationGroup="valGroup">
</asp:RegularExpressionValidator>

按钮:

<asp:LinkButton ID="btnValidate" runat="server" CausesValidation="True" ValidationGroup="valGroup" >Validate</asp:LinkButton>

有什么建议么?

4

1 回答 1

0

很难从中分辨出来,因为它看起来对我来说设置正确。调试的唯一方法是检查Page.Validators集合,在其中找到验证器,并确保IsValid这些人是错误的。所有ValidationSummary要做的就是检查这个集合,对于任何具有匹配验证组的集合,如果IsValid属性为 false,则将其添加到呈现出来的列表中。

于 2013-05-20T15:24:05.543 回答