4.7 验证信息显示:ValidationSummary

ValidationSummary控件并不执行任何验证,相反,它允许在网页上显示所有验证控件的错误信息汇总。这个错误信息汇总显示了页面上的每个验证控件的ErrorMessage属性的值。它可以在客户端的JavaScript信息框里面显示(设置ShowMessageBox属性的值为true),也可以在页面上直接显示(设置ShowSummary属性的值为true),还可以两者同时进行显示。

如果选择在页面上直接显示信息,则可以通过设置DisplayMode属性的值来选择一个显示样式,该属性可以使汇总信息显示为列表((Ls t)、项目符号列表((Bl let Lis t)或者单个段落((SngleParagraph)三种样式。还可以通过设置HeaderText属性来为这些汇总信息指定一个自定义标题。最后,也可以通过设置ShowSummary属性,来控制ValidationSummary控件是显示还是隐藏。示例如代码清单4-7所示。

代码清单4-7 TestValidationSummary.aspx


<form id="form1"runat="server">

<div>

文本:<asp:TextBox ID="TextBox1"runat="server"></asp:TextBox>

<asp:RequiredFieldValidator

ID="RequiredFieldValidator1"

ControlToValidate="TextBox1"

ErrorMessage="文本输入不能够为空"

runat="server"Text="*"/>

<br/>

数字:<asp:TextBox ID="TextBox2"runat="server"></asp:TextBox>

<asp:RangeValidator

ID="RangeValidator1"

ControlToValidate="TextBox2"

MinimumValue="1"

MaximumValue="20"

Type="Integer"ErrorMessage="输入的数字必须是1~20"

Text="*"runat="server"/>

<br/>

Email:<asp:TextBox ID="TextBox3"runat="server"></asp:TextBox>

<asp:RegularExpressionValidator

ID="RegularExpressionValidator1"

ControlToValidate="TextBox3"

ValidationExpression=".*@.{2,}..{2,}"

runat="server"Text="*"

ErrorMessage="你的Email地址格式错误">

</asp:RegularExpressionValidator>

<asp:ValidationSummary

ID="ValidationSummary1"

ShowMessageBox="true"

ShowSummary="true"

DisplayMode="BulletList"

runat="server"/>

<br/>

<asp:Button ID="Button1"runat="server"Text="数据提交"/>

</div>

</form>


在代码清单4-7中,分别定义了三个文本框TextBox1、TextBox2和TextBox3,并对这三个文本框分别采用了三种不同的验证控件进行验证,即RequiredFieldValidator控件验证TextBox1,Range Validator控件验证TextBox2,Regular Expression Validator控件验证TextBox3。最后将验证结果的信息汇总由Vali dat ion Sum mar y控件分两种方式((SowMessageBox与ShowSummary)统一显示出来。运行结果如图4-10所示。

figure_0142_0106

图 4-10 TestValidationSummary.aspx运行结果

注意 如果没有设置验证控件的ErrorMessage属性,将不会在ValidationSummary控件中为该验证控件显示错误消息。