asp.net的验证控件都派生自BaseValidator这个抽象类。BaseValidator类有常见属性有:
属性名 | 说明 |
ControlToValidate | 待验证的控件的ID。必须指定。 |
Display | 错误信息的显示方式。 1)有None(将错误信息集中到ValidationSummary控件中显示) 2)Static(默认,始终为错误信息分配显示空间) 3)Dynamic(只在需要的时候才为错误信息分配显示空间) |
EnableClientScript | 是否启用客户端验证 |
Enabled | 是否启用验证控件 |
ErrorMessage | 验证失败时显示的信息 |
IsValid | 关联的控件是否通过验证 |
SetFocusOnError | 当验证失败时是否将焦点移动到关联的控件上 |
Text | 验证失败时在验证控件中要显示的信息。与Display为None是配合使用。 |
ValidationGroup | 验证控件所在的分组名 |
asp.net验证控件对以下类型的.net控件的值进行验证:
控件名 | 要验证的属性 | 备注 |
DropDownList | SelectedValue | 验证选中项的值 |
FileUpload | FileName | 验证要上传的文件名 |
ListBox | SelectedItem.Value | 验证选中的第一项的值 |
RadioButtonList | SelectedItem.Value | 验证选中项的值 |
TextBox | Text | 验证文本框的值 |
HtmlInputFile | Value | 验证HTML服务器上传控件中的文件名 |
HtmlInputPassword | Value | 验证HTML服务器文本控件的值 |
HtmlInputText | Value | 验证HTML服务器文本控件的值 |
HtmlSelect | Value | 验证HTML服务器下拉控件选中的值 |
HtmlTextArea | Value | 验证HTML服务器多行文本控件的值 |
验证控件主要介绍:
1)RequiredFieldValidator控件 (必填验证控件)
主要验证TextBox、DropDownList控件。
一个比较重要的属性:InitialValue,默认值是String.Empty,如果控件的值与它的默认值一致就不能通过验证,在验证DropDownList控件的时候我们也可以使用该属性。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <table style="width:100%;">
- <tr>
- <td>
- 用户名:</td>
- <td>
- <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="用户名不能为空" ControlToValidate="txtUserName"></asp:RequiredFieldValidator>
- </td>
- </tr>
- <tr>
- <td>
- 省 份:</td>
- <td>
- <asp:DropDownList ID="ddlState" runat="server">
- <asp:ListItem Selected="True">请选择</asp:ListItem>
- <asp:ListItem Value="1">山西</asp:ListItem>
- </asp:DropDownList>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="请选择省份" ControlToValidate="ddlState" InitialValue="请选择"></asp:RequiredFieldValidator>
- </td>
- </tr>
- <tr>
- <td>
- <asp:Button ID="btnOK" runat="server" Text="提交" />
- </td>
- <td>
- <asp:Button ID="reset" runat="server" Text="撤销" />
- </td>
- </tr>
- </table>
- </div>
- </form>
- </body>
- </html>
2)CompareValidator控件 (比较验证控件)
自定义属性有:
属性名 | 说明 | ||||||||||||
ControlToCompare | 要与所验证的输入控件进行比较的输入控件的ID | ||||||||||||
Operator | 要执行的比较操作 <(LessThan)、<=(LessThanEqual)、!= (NotEqual)、=(Equal)、>(GreaterThan)及>=(GreaterThanEqual) | ||||||||||||
Type | 对控件的值按照哪种方式进行比较,默认String
| ||||||||||||
ValueToCompare | 设置要与所验证的控件的值进行比较的值。与ControlToCompare属性不能同时使用。 |
3)RangeValidator控件 (范围验证控件)
自定义属性有:
属性名 | 说明 |
MaximumValue | 允许的最大值 |
MinimumValue | 允许的最小值 |
Operator | 要执行的比较操作 |
Type | 对控件的值按照哪种方式进行比较,默认String |
- 开始时间
- <asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtStartDate"
- ErrorMessage="用户名必须填写"></asp:RequiredFieldValidator>
- <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="开始日期必须早于结束日期" ControlToCompare="txtStartDate" ControlToValidate="txtEndDate" Operator="GreaterThanEqual" Type="Date"></asp:CompareValidator>
- 结束时间
- <asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtEndDate"
- ErrorMessage="请填写结束时间"></asp:RequiredFieldValidator>
- 参加人数
- <asp:TextBox ID="txtNumber" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtNumber"
- ErrorMessage="必须填写人数"></asp:RequiredFieldValidator>
- <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="txtNumber"
- ErrorMessage="人数必须大于0" Operator="GreaterThan" Type="Integer" ValueToCompare="0"></asp:CompareValidator></td></tr>
4)RegularExpressionValidator控件 (正则控件)
常用属性ValidationExpression,是用来设置用于匹配所要验证控件的值的正则表达式。
正则表达式有由两种基本字符类型组成:原义(正常)文本字符和元字符。一些常见元字符(针对单个字符匹配):
元字符 | 说明 |
. | 匹配除 /n 以外的任何字符。 |
[abcde] | 匹配abcde之中的任意一个字符 |
[a-h] | 匹配a到h之间的任意一个字符 |
[^fgh] | 不与fgh之中的任意一个字符匹配 |
/w | 匹配大小写英文字符及数字0到9之间的任意一个,相当于[a-zA-Z0-9] |
/W | 不匹配大小写英文字符及数字0到9之间的任意一个,相当于[^a-zA-Z0-9] |
/s | 匹配任何空白字符,相当于[ /f/n/r/t/v] |
/S | 匹配任何非空白字符,相当于[^/s] |
/d | 匹配任何0到9之间的单个数字,相当于[0-9] |
/D | 不匹配任何0到9之间的单个数字,相当于[^0-9] |
针对多个字符匹配的元字符有:
限定浮 | 说明 |
* | 匹配0到多个元字符,相当于{0,} |
? | 匹配0到1个元字符,相当于{0,1} |
{n} | 匹配n个元字符 |
{n,} | 匹配至少n个元字符 |
{n,m} | 匹配n到m个元字符 |
+ | 匹配至少1个元字符,相当于{1,} |
^ | 字符串必须以指定的字符开始 |
$ | 字符串必须以指定的字符结束 |
简单举例说明:
- 真实姓名:
- <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtUserName" ErrorMessage="姓名必须填写" Display="Dynamic"></asp:RequiredFieldValidator>
- <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="姓名是2到4个汉字" ControlToValidate="txtUserName" Display="Dynamic" ValidationExpression="[/u4e00-/u9fa5]{2,4}"></asp:RegularExpressionValidator>
- 手机号:
- <asp:TextBox ID="txtMobile" runat="server"></asp:TextBox>
- <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtMobile" ErrorMessage="姓名必须填写" Display="Dynamic"></asp:RequiredFieldValidator>
- <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtMobile" ErrorMessage="不正确的手机号" ValidationExpression="((13[0-9])|(15[89]))/d{8}"></asp:RegularExpressionValidator>
5)ValidationSummary控件 (显示所有验证错误摘要的控件,必须将Display属性设置None才能显示到这里)
常用属性有:
属性名 | 说明 |
DisplayMode | 指定显示模式,有BulletList、List、SingleParagraph三种模式 |
ShowMessageBox | 是否以客户端提示框的信息显示验证错误信息摘要 |
ShowSummary | 是否在网页中采用内联方式显示错误摘要 |