下面是代码,当我选择一个错误的文件类型时,我得到即时红色“*”,但我没有看到验证摘要,并且有一个按钮(“上传”),当我点击它比我得到验证摘要错误信息。
我的问题是:当我选择错误的文件类型时,为什么不显示验证摘要?
<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>
答案 0 :(得分:4)
由于您的RegularExpressionValidator具有EnableClientScript="true"
,它将导致客户端验证控件。
ValidationSummary控件,即使它也可能设置为EnableClientScript="true"
,必须使用自己的组验证所有控件,因此不会以相同的方式显示错误消息。这是设计使然,因此只有在提交表单后才能使用。
要立即停止显示'*',您可以将控件设置为Display="None"
或更改为EnableClientScript="false"
答案 1 :(得分:2)
当您尝试提交表单(单击“提交”按钮)时,会显示ValidationSummary,而不是在填写表单字段后显示。
如果您的验证器上有Display="Dynamic"
,就像您拥有的那样,您唯一能够立即获得的是验证者的Text属性中的消息。因此,如果您想立即收到错误消息,则必须将Text="*"
更改为Text="Invalid file type"
。