首页>教程>ASP.NET教程>ASP.NET Web Forms Validation 服务器控件

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

ASP.NET Web Forms Validation 服务器控件

内容纲要

ASP.NET Web Forms Validation 服务器控件是用来验证用户输入的

Validation 服务器控件

Validation 服务器控件用于验证输入控件的数据

如果数据未通过验证,则向用户显示错误消息

语法

创建 Validation 服务器控件的语法如下

<asp:control_name id="some_id" runat="server" />

ASP.NET 常用的 Validation 服务器控件

Validation 服务器控件描述
CompareValidator把一个输入控件的值与另一个输入控件的值或一个固定的值进行对比
CustomValidator自定义一个方法,来处理输入值的验证
RangeValidator检查用户输入值是否介于两个值之间
RegularExpressionValidator确保输入控件的值匹配指定的模式
RequiredFieldValidator使输入控件成为必需(必填)的字段
ValidationSummary显示网页中所有验证错误的报告

ASP.NET CompareValidator 控件

ASP.NET CompareValidator 控件用于将一个输入控件的值与另一个输入控件的值或常数值进行比较

如果输入控件为空,则不会调用任何验证函数,并且验证将成功,可以使用 RequiredFieldValidator 控件使字段必填

属性

属性描述
BackColorCompareValidator 控件的背景颜色
ControlToCompare要与所验证的控件进行比较的控件名称
ControlToValidate要验证的控件的 id
Display验证控件的显示行为。合法值有:
None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息
Static - 如果验证失败,控件显示错误消息。即使输入通过验证,也在页面上预留显示消息的空间,即用于显示消息的空间是预先分配好的
Dynamic - 如果验证失败,控件显示错误消息。如果输入通过验证,页面上不预留显示消息的空间,即用于显示消息的空间是动态添加的
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ErrorMessage当验证失败时,在 ValidationSummary 控件中显示的文本
如果未设置 Text 属性,文本也会显示在验证控件中
ForeColor控件的前景颜色
id控件的唯一 id
IsValid布尔值,指示由 ControlToValidate 指定的控件是否通过验证
Operator要执行的比较操作的类型。运算符有:
Equal
GreaterThan
GreaterThanEqual
LessThan
LessThanEqual
NotEqual
DataTypeCheck
runat规定控件是服务器控件。必须设置为 "server"
Text当验证失败时显示的消息
Type规定要对比的值的数据类型。类型有:
Currency
Date
Double
Integer
String
ValueToCompare一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较

范例

CompareValidator

<!DOCTYPE html>
<meta charset="utf-8" />

<form runat="server">
<table border="0" bgcolor="#b0c4de">
   <tr valign="top">
     <td colspan="4"><h4>Compare two values</h4></td>
   </tr> 
   <tr valign="top">
     <td><asp:TextBox id="txt1" runat="server" /></td>
     <td> = </td>
     <td><asp:TextBox id="txt2" runat="server" /></td>
     <td><asp:Button Text="Validate" runat="server" /></td>
   </tr>
</table>
<br>
<asp:CompareValidator
id="compval" 
Display="dynamic"
ControlToValidate="txt1" 
ControlToCompare="txt2" 
ForeColor="red" 
BackColor="yellow" 
Type="String"
EnableClientScript="false" 
Text="Validation Failed!" 
runat="server" />
</form>

这个范例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 Button 控件,和一个 CompareValidator 控件如果验证失败,将在 CompareValidator 控件中使用黄色背景红色字体显示 "Validation Failed!" 文本

CompareValidator 2

<script  runat="server">
sub check_operator(sender As Object, e As EventArgs) 
   compval.Operator=CType(list.SelectedIndex,ValidationCompareOperator)
   compval.Validate()
end sub
</script>

<!DOCTYPE html>
<meta charset="utf-8" />

<form runat="server">
<table border="0" bgcolor="#b0c4de">
   <tr valign="top">
     <td colspan="4"><h4>Compare two values</h4></td>
   </tr> 
   <tr valign="top">
     <td><asp:TextBox id="txt1" runat="server" /></td>
     <td>
     <asp:ListBox id="list" rows="2" OnSelectedIndexChanged="check_operator" runat="server">
           <asp:ListItem value="Equal" selected>=</asp:ListItem>
           <asp:ListItem value="NotEqual"><></asp:ListItem>
     </asp:ListBox>
     </td>
     <td><asp:TextBox id="txt2" runat="server" /></td>
     <td><asp:Button Text="Validate" runat="server" /></td>
   </tr>
</table>
<br>
<asp:CompareValidator
id="compval" 
Display="dynamic"
ControlToValidate="txt1" 
ControlToCompare="txt2" 
ForeColor="red" 
BackColor="yellow" 
Type="String"
EnableClientScript="false" 
Text="Validation Failed!" 
runat="server" />
</form>
  • 在这个范例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 ListBox 控件,一个 Button 控件,和一个 CompareValidator 控件check_operator() 函数把 ListBox 控件中选取的运算符设置为 CompareValidator 控件的运算符,然后对 CompareValidator 控件进行验证如果验证失败,将在 CompareValidator 控件中使用黄色背景红色字体显示 "Validation Failed!" 文本

ASP.NET CustomValidator 控件

ASP.NET CustomValidator 控件允许自定义处理输入值验证的方法

属性

属性描述
BackColorCustomValidator 控件的背景颜色
ClientValidationFunction规定要被执行的客户端脚本函数的名称。注释:脚本必须用浏览器支持的语言编写,比如 VBScript 或 JScript使用 VBScript 时,函数必须位于表单内:Sub FunctionName (source, arguments)使用 JScript 时,函数必须位于表单内:Function FunctionName (source, arguments)
ControlToValidate要验证的控件的 id
Display验证控件的显示行为。合法值有:
None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息
Static - 如果验证失败,控件显示错误消息。即使输入通过验证,也在页面上预留显示消息的空间,即用于显示消息的空间是预先分配好的
Dynamic - 如果验证失败,控件显示错误消息。如果输入通过验证,页面上不预留显示消息的空间,即用于显示消息的空间是动态添加的
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ErrorMessage当验证失败时,在 ValidationSummary 控件中显示的文本。注释:如果未设置 Text 属性,文本也会显示在验证控件中
ForeColor控件的前景色
id控件的唯一 id
IsValid布尔值,指示由 ControlToValidate 指定的控件是否通过验证
OnServerValidate规定被执行的服务器端验证脚本函数的名称
runat规定该控件是服务器控件。必须设置为 "server"
Text当验证失败时显示的消息

范例

CustomValidator

<script  runat="server">
Sub user(source As object,args As ServerValidateEventArgs)
   if len(args.Value)<8 or len(args.Value)>16 then
    args.IsValid=false
   else
    args.IsValid=true
   end if
End Sub
</script>     

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
<asp:Label runat="server" Text="Enter a username: " />
<asp:TextBox id="txt1" runat="server" />
<asp:Button Text="Submit" runat="server"/>
<br>
<asp:Label id="mess" runat="server"/>
<br>
<asp:CustomValidator
ControlToValidate="txt1"
OnServerValidate="user"
Text="A username must be between 8 and 16 characters!"
runat="server"/>
</form>

在这个范例中,我们在 .aspx 文件中声明了两个 Label 控件,一个 TextBox 控件,一个 Button 控件,和一个 CustomValidator 控件user() 函数可检测输入值的长度如果长度小于 8 或大于 16,将在 CustomValidator 控件中显示文本 "A username must be between 8 and 16 characters!"

ASP.NET RangeValidator 控件

ASP.NET RangeValidator 控件用于检测用户输入的值是否介于两个值之间

可以对不同类型的值进行比较,比如数字、日期和字符

如果输入控件为空,验证不会失败,请使用 RequiredFieldValidator 控件,使字段必填

如果输入值无法转换为指定的数据类型,验证不会失败,请使用 CompareValidator 控件,将其 Operator 属性设置为 ValidationCompareOperator.DataTypeCheck,这样就可以校验输入值的数据类型了

属性

属性描述
BackColorRangeValidator 控件的背景颜色
ControlToValidate要验证的控件的 id
Display验证控件的显示行为。合法值有:
None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息
Static - 如果验证失败,控件显示错误消息。即使输入通过验证,也在页面上预留显示消息的空间,即用于显示消息的空间是预先分配好的
Dynamic - 如果验证失败,控件显示错误消息。如果输入通过验证,页面上不预留显示消息的空间,即用于显示消息的空间是动态添加的
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ErrorMessage当验证失败时,在 ValidationSummary 控件中显示的文本。注释:如果未设置 Text 属性,文本也会显示在验证控件中
ForeColor控件的前景颜色
id控件的唯一 id
IsValid布尔值,指示由 ControlToValidate 指定的控件是否通过验证
MaximumValue规定输入控件的最大值
MinimumValue规定输入控件的最小值
runat规定该控件是一个服务器控件。必须设置为 "server"
Type规定要检测的值的数据类型。类型有:CurrencyDateDoubleIntegerString
Text当验证失败时显示的消息

范例

RangeValidator

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
Enter a date between 2005-01-01 and 2005-12-31:
<br>
<asp:TextBox id="tbox1" runat="server" />
<br><br>
<asp:Button Text="Submit" runat="server" />
<br><br>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="2005-01-01"
MaximumValue="2005-12-31"
Type="Date"
EnableClientScript="false"
Text="The date must be between 2005-01-01 and 2005-12-31!"
runat="server" />
</form>

本范例中,我们在 .aspx 文件中声明了一个 TextBox 控件,一个 Button 控件,和一个 RangeValidator 控件如果验证失败,将在 RangeValidator 控件中显示文本 "The date must be between 1/1/2002 and 31/5/2002!"

RangeValidator 2

<script  runat="server">
Sub submit(sender As Object, e As EventArgs)
If Page.IsValid Then
   lbl1.Text="Page is valid."
Else
   lbl1.Text="Page is not valid!!"
End If
End Sub
</script>

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br><br>
<asp:Button Text="Submit" OnClick="submit" runat="server" />
<br><br>
<asp:Label id="lbl1" runat="server" />
<br>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
EnableClientScript="false"
Text="The value must be from 1 to 100!"
runat="server" />
</form>

范例中,我们在 .aspx 文件中声明了一个 TextBox 控件,一个 Button 控件,一个 Label 控件,和一个 RangeValidator 控件。submit() 函数可检测页面是否有效如果有效,则在 Label 控件中返回 "The page is valid!"如果无效,则在 Label 控件中返回 "The page is not valid!"如果验证失败,则在 RangeValidator 控件中显示 "The value must be from 1 to 100!"

ASP.NET RegularExpressionValidator 控件

ASP.NET RegularExpressionValidator 控件用于验证输入值是否匹配指定的模式

除非浏览器不支持客户端验证或 EnableClientScript 属性被设置为 false,否则将同时执行服务器端和客户端验证

如果输入控件为空,验证将失败,可以使用 RequiredFieldValidator 控件,使字段必填

属性

属性描述
BackColorRegularExpressionValidator 控件的背景颜色
ControlToValidate要验证的控件的 id
Display验证控件的显示行为。合法值有:
None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息
Static - 如果验证失败,控件显示错误消息。即使输入通过验证,也在页面上预留显示消息的空间,即用于显示消息的空间是预先分配好的
Dynamic - 如果验证失败,控件显示错误消息。如果输入通过验证,页面上不预留显示消息的空间,即用于显示消息的空间是动态添加的
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ErrorMessage当验证失败时,在 ValidationSummary 控件中显示的文本
如果未设置 Text 属性,文本也会显示在验证控件中
ForeColor控件的前景颜色
id控件的唯一 id
IsValid布尔值,指示由 ControlToValidate 指定的控件是否通过验证
runat规定该控件是一个服务器控件。必须设置为 "server"
BackColorRegularExpressionValidator 控件的背景颜色
Text当验证失败时显示的消息
ValidationExpression规定验证输入控件的正则表达式。在客户端和服务器上,表达式的语法是不同的。JScript 用于客户端。在服务器上,根据你规定的语言使用

范例

RegularExpressionValidator

<script  runat="server">
sub submit(sender As Object, e As EventArgs) 
if Page.IsValid then 
   lbl.Text="The page is valid!"
else 
   lbl.Text="The page is not valid!"
end if
end sub
</script>

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
Enter a US zip code:
<asp:TextBox id="txtbox1" runat="server" />
<br><br>
<asp:Button text="Submit" OnClick="submit" runat="server" />
<br><br>
<asp:Label id="lbl" runat="server" />
<br>
<asp:RegularExpressionValidator 
ControlToValidate="txtbox1"
ValidationExpression="\d{5}"
EnableClientScript="false"
ErrorMessage="The zip code must be 5 numeric digits!"
runat="server" />
</form>

范例中,我们在 .aspx 文件中声明了一个 TextBox 控件,一个 Button 控件,一个 Label 控件,和一个 RegularExpressionValidator 控件。submit() 函数检测页面是否有效如果有效,则在 Label 控件中返回 "The page is valid!"如果无效,则在 Label 控件中返回 "The page is not valid!"如果验证失败,将在 RegularExpressionValidator 控件中显示文本 "The zip code must be 5 numeric digits!"

ASP.NET RequiredFieldValidator 控件

RequiredFieldValidator 控件用于使输入控件成为一个必需(必填)的字段

通过该控件,如果输入值的初始值未改变,则验证失败。默认情况下,初始值是空字符串 ("")

输入值的开头和结尾的空格将在验证前被移除

InitialValue 属性不为输入控件设置默认值。它指示了您 不希望 用户在输入控件中输入的值

属性

属性描述
BackColorRequiredFieldValidator 控件的背景颜色
ControlToValidate要验证的控件的 id
Display验证控件的显示行为。合法值有
None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息
Static - 如果验证失败,控件显示错误消息。即使输入通过验证,也在页面上预留显示消息的空间,即用于显示消息的空间是预先分配好的
Dynamic - 如果验证失败,控件显示错误消息。如果输入通过验证,页面上不预留显示消息的空间,即用于显示消息的空间是动态添加的
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ErrorMessage当验证失败时,在 ValidationSummary 控件中显示的文本
如果未设置 Text 属性,文本也会显示在验证控件中
ForeColor控件的前景颜色
id控件的唯一 id
InitialValue定输入控件的初始值(开始值)。默认是 ""
IsValid布尔值,指示由 ControlToValidate 指定的控件是否通过验证
runat规定该控件是一个服务器控件。必须设置为 "server"
Text当验证失败时显示的消息

范例

RequiredFieldValidator

<!DOCTYPE html>
<meta charset="utf-8">
<form runat="server">
Name: <asp:TextBox id="name" runat="server" />
<br>
Age: <asp:TextBox id="age" runat="server" />
<br><br>
<asp:Button runat="server" Text="Submit" />
<br><br>
<asp:RequiredFieldValidator
ControlToValidate="name"
Text="The name field is required!"
runat="server" />
</form>

范例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 Button 控件,和一个 RequiredFieldValidator 控件它演示了如何使用 RequiredFieldValidator 控件使 "txt_name" 文本框成为必需(必填)的字段

ASP.NET ValidationSummary 控件

ValidationSummary 控件用于显示网页中所有验证错误的摘要

在该控件中显示的错误消息是由每个验证控件的 ErrorMessage 属性规定的

如果未设置验证控件的 ErrorMessage 属性,就不会为那个验证控件显示错误消息

属性

属性描述
DisplayMode如何显示摘要。合法值有:
Bullet
List
ListSingleParagraph
EnableClientScript布尔值,规定是否启用客户端验证
Enabled布尔值,规定是否启用验证控件
ForeColor控件的前景颜色
HeaderTextValidationSummary 控件中的标题文本
id控件的唯一 id
runat规定该控件是一个服务器控件。必须设置为 "server"
ShowMessageBox布尔值,规定是否在消息框中显示验证摘要
ShowSummary布尔值,规定 ValidationSummary 控件是否显示或者隐藏

范例

Validationsummary

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
<table>
<tr>
<td>
<table bgcolor="#b0c4de" cellspacing="10">
   <tr>
     <td align="right">Name:</td>
     <td><asp:TextBox id="txt_name" runat="server"/></td>
     <td>
     <asp:RequiredFieldValidator
     ControlToValidate="txt_name" 
     ErrorMessage="Name"
     Text="*" 
     runat="server"/>
     </td>
   </tr>
   <tr>
     <td align="right">Card Type:</td>
     <td>
     <asp:RadioButtonList id="rlist_type" 
     RepeatLayout="Flow"
     runat="server">
     <asp:ListItem>Diners</asp:ListItem>
     <asp:ListItem>MasterCard</asp:ListItem>
     <asp:ListItem>Visa</asp:ListItem>
     </asp:RadioButtonList>
     </td>
     <td>
     <asp:RequiredFieldValidator
     ControlToValidate="rlist_type"
     ErrorMessage="Card Type"
     InitialValue=""
     Text="*"
     runat="server"/>
     </td>
   </tr>
   <tr>
     <td></td>
     <td><asp:Button id="b1" Text="Submit" runat="server"/></td>
     <td></td>
   </tr>
</table>
</td>
</tr>
</table>
<br>
<asp:ValidationSummary
HeaderText="You must enter a value in the following fields:"
DisplayMode="BulletList"
EnableClientScript="true"
runat="server"/>
</form>

范例中,我们使用 ValidationSummary 控件生成了一个留空供用户填写的必填字段的列表

Validationsummary 2

<!DOCTYPE html>
<meta charset="utf-8" />
<form runat="server">
<table>
<tr>
<td>
<table bgcolor="#b0c4de" cellspacing="10">
   <tr>
     <td align="right">Name:</td>
     <td><asp:TextBox id="txt_name" runat="server"/></td>
     <td>
     <asp:RequiredFieldValidator
     ControlToValidate="txt_name" 
     ErrorMessage="Name"
     Text="*" 
     runat="server"/>
     </td>
   </tr>
   <tr>
     <td align="right">Card Type:</td>
     <td>
     <asp:RadioButtonList id="rlist_type" 
     RepeatLayout="Flow"
     runat="server">
     <asp:ListItem>Diners</asp:ListItem>
     <asp:ListItem>MasterCard</asp:ListItem>
     <asp:ListItem>Visa</asp:ListItem>
     </asp:RadioButtonList>
     </td>
     <td>
     <asp:RequiredFieldValidator
     ControlToValidate="rlist_type"
     ErrorMessage="Card Type"
     InitialValue=""
     Text="*"
     runat="server"/>
     </td>
   </tr>
   <tr>
     <td></td>
     <td><asp:Button id="b1" Text="Submit" runat="server"/></td>
     <td></td>
   </tr>
</table>
</td>
</tr>
</table>
<asp:ValidationSummary
ShowMessageBox="true"
ShowSummary="false"
HeaderText="You must enter a value in the following fields:"
EnableClientScript="true"
runat="server"/>
</form>

范例中,我们使用 ValidationSummary 控件显示了一个留空供用户填写的必填字段的消息框

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索