ValidationSummary未显示 - 使用RegularExpressionValidator

时间:2010-09-17 14:24:12

标签: asp.net validation controls

下面是代码,当我选择一个错误的文件类型时,我得到即时红色“*”,但我没有看到验证摘要,并且有一个按钮(“上传”),当我点击它比我得到验证摘要错误信息。

我的问题是:当我选择错误的文件类型时,为什么不显示验证摘要?

<asp:ValidationSummary ForeColor="DarkRed" 
 ID="ValidationSummary1" runat="server" ShowMessageBox="False"
 HeaderText="To save this page, the following required fields must be completed:" ShowSummary="true" />

  <asp:RegularExpressionValidator ID="RegularExpressionValidator2" EnableClientScript="true" runat="server" ControlToValidate="fUpload"
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.rtf|.RTF|.Rtf|.xls|.XLS|.Xls)$" Text="*"
ErrorMessage="Invalid file type" SetFocusOnError="true" Display="Dynamic">/></asp:RegularExpressionValidator> 

2 个答案:

答案 0 :(得分:4)

由于您的RegularExpressionValidator具有EnableClientScript="true",它将导致客户端验证控件。

ValidationSummary控件,即使它也可能设置为EnableClientScript="true",必须使用自己的组验证所有控件,因此不会以相同的方式显示错误消息。这是设计使然,因此只有在提交表单后才能使用。

要立即停止显示'*',您可以将控件设置为Display="None"或更改为EnableClientScript="false"

答案 1 :(得分:2)

当您尝试提交表单(单击“提交”按钮)时,会显示ValidationSummary,而不是在填写表单字段后显示。

如果您的验证器上有Display="Dynamic",就像您拥有的那样,您唯一能够立即获得的是验证者的Text属性中的消息。因此,如果您想立即收到错误消息,则必须将Text="*"更改为Text="Invalid file type"