1、http:/ 验证控件基本知识n 必填字段验证控件的使用n 比较验证控件的使用n 范围验证控件的使用n 正则表达式验证控件的使用n 自定义验证控件的使用n 验证错误摘要控件的使用http:/ Page.IsValid Then验证通过后要执行的代码 Eles 验证未通过要执行的代码 End IFhttp:/ Studio.NET工具箱中,必填字段验证控件的图标是。双击或用鼠标拖动工具箱中的RequiredFieldValidator控件,可将它加入到Web窗体。重复该操作可加入多个RequiredFieldValidator控件。加入到窗体的RequiredFieldValidator控件可用
2、鼠标拖放到窗体的任意位置并可以改变控件的大小。http:/ http:/ 例7-1使用必填验证控件检测用户名和密码n 【界面设计】n 在Web窗体页上放置两个Textbox控件、两个Label控件、两个RequiredFieldValidator控件及两个Button控件。设计后的效果如图7-1所示。n Web窗体上各控件的属性:n RequiredFieldValidator1控件的属性n ControlToValidator:TextBox1(用户名文本框)n ErrorMessage:请填写用户名n InitialValue:guestn 其他属性按默认设置。n RequiredFiel
3、dValidator2控件的属性n ControlToValidator:TextBox2(密码文本框)n Text:密码为必填项n 其他属性按默认设置。n TextBox1(用户名)的属性n Text:Adminn 其他属性按默认设置。n TextBox2(密码)的属性n TextMode:Passwordn 其他属性按默认设置。http:/ 设计后的Web窗体效果图http:/ 运行结果 图7-2 运行结果 http:/ Studio.NET工具箱中,比较验证控件的图标是。双击或用鼠标拖动工具箱中的CompareValidator控件,可将它加入到Web窗体。重复该操作可加入多个Compa
4、reValidator控件。加入到窗体的CompareValidator控件可用鼠标拖放到窗体的任意位置并可以改变控件的大小。http:/ runat=server nhttp:/ DataTypeCheck(数据类型检查)时,比较验证控件将同时忽略 ControlToCompare属性和ValueToCompare 属性,而仅检验输入控件中的值是否可以转换为Type 属性所指定的数据类型。图7-3 比较运算符 http:/ 比较数据类型ErrorMessage:验证未通过时显示的出错信息。该出错信息可以显示在验证错误摘要控件上。Text:验证未通过时显示的出错信息。数据类型数据类型解释解释S
5、tring String 字符串数据类型。字符串数据类型。Integer Integer 32 32 位有符号整数数据类型。位有符号整数数据类型。Double Double 双精度浮点数数据类型。双精度浮点数数据类型。Date Date 日期数据类型。日期数据类型。Currency Currency 一种可以包含货币符号的十进制数据类型。一种可以包含货币符号的十进制数据类型。http:/ 【界面设计】在Web窗体页上放置三个Label控件、三个TextBox控件、两个Button控件和一个CompareValidator控件。界面效果如图7-4所示。http:/ 设计后的Web窗体页效果 ht
6、tp:/ 运行结果http:/ 属性指定。在Visual Studio.NET工具箱中,范围验证控件的图标是。双击或用鼠标拖动工具箱中的RangeValidator控件,可将它加入到Web窗体。重复该操作可加入多个RangeValidator控件。加入到窗体的RangeValidator控件可用鼠标拖放到窗体的任意位置并可以改变控件的大小。http:/ runat=server 2.范围验证控件的主要属性IDID:范围验证控件的标识符。:范围验证控件的标识符。ControlToValidateControlToValidate:与范围验证控件相关联的输入控件,该控件内的值就:与范围验证控件相关
7、联的输入控件,该控件内的值就是需要验证的数据。是需要验证的数据。MaximumValueMaximumValue:验证范围的上限。:验证范围的上限。MinimumValueMinimumValue:验证范围的下限。:验证范围的下限。http:/ 设计后的Web窗体效果图 http:/ 7-7 运行结果 http:/ id=Range ControlToValidate=DateValue runat=server/点评:例子中有一个要求用户输入日期的文本框例子中有一个要求用户输入日期的文本框DateValueDateValue和一个范围验证和一个范围验证控件控件RangeRange。由于范围验
8、证控件的上下限设为。由于范围验证控件的上下限设为“2019-01-01”2019-01-01”和和“2019-2019-01-01”01-01”,因此文本框,因此文本框DateValueDateValue的日期值只能在此范围之内,否则会显的日期值只能在此范围之内,否则会显示出错信息示出错信息“超出日期范围超出日期范围”。http:/ 正则表达式中的特殊字符特殊字符 含义*零次或多次匹配前面的字符或子表达式。?零次或一次匹配前面的字符或子表达式。+一次或多次匹配前面的字符或子表达式。n n 是非负整数。正好匹配 n 次。|n 或的关系。.表示任何字符。xyz 匹配x、y或z中的任一个字符。xyz
9、 匹配不包含x、y或z中的任何字符。http:/ 匹配a-z范围内的任何字符。a-z匹配不在指定a-z范围内的任何字符。d数字字符匹配。等效于 0-9。D非数字字符匹配。等效于 0-9。s匹配任何空白字符,包括空格、制表符、换页符等。S匹配任何非空白字符。将下一字符标记为特殊字符、文本、反向引用或八进制转义符。w匹配任何字类字符,包括下划线。与A-Za-z0-9_等效。W任何非字字符匹配。与A-Za-z0-9_等效。http:/ asp:RegularExpressionValidator runat=server http:/ 正则表达式编辑器http:/ 设计后的Web窗体效果图http:
10、/ 运行结果http:/ runat=server 2.自定义验证控件的主要属性IDID:自定义验证控件的标识符。:自定义验证控件的标识符。ControlToValidateControlToValidate:与自定义验证控件相关联的输入控件,该控件内的值就是需:与自定义验证控件相关联的输入控件,该控件内的值就是需要验证的数据。要验证的数据。ClientValidationFunction:客户端自定义验证函数的名字。客户端自定义验证函数可以使用VBScript或JavaScript脚本语言编写。在Visual Studio.NET中,必须切换到HTML视图,在该视图中编写客户端自定义验证函数
11、。客户端自定义验证函数的格式:http:/ clientvalidator(source,args)Sub clientvalidator(source,args)或或function function clientvalidator(source,args)clientvalidator(source,args)其中,其中,sourcesource参数代表参数代表CustomValidatorCustomValidator对象;对象;argsargs参数有两个属性,一个是参数有两个属性,一个是ValueValue,表示要验证的数据,一个是,表示要验证的数据,一个是IsValidIsValid
12、,用来设置验证后的返回结果,即,用来设置验证后的返回结果,即是通过验证(是通过验证(truetrue)还是没通过验证()还是没通过验证(falsefalse)。)。ErrorMessageErrorMessage:验证未通过时显示的出错信息。该出错信息可以显示在验证错:验证未通过时显示的出错信息。该出错信息可以显示在验证错误摘要控件上。误摘要控件上。TextText:验证未通过时显示的出错信息。:验证未通过时显示的出错信息。DisplayDisplay:自定义验证控件出错信息的显示方式。当取值为:自定义验证控件出错信息的显示方式。当取值为NoneNone时,表示验证控时,表示验证控件不会出现在
13、件不会出现在WebWeb页上;当取值为页上;当取值为StaticStatic时,表示每个验证控件都会在时,表示每个验证控件都会在WebWeb页上页上占有一定的空间;当取值为占有一定的空间;当取值为DynamicDynamic时,表示除非验证控件显示消息,否则不会时,表示除非验证控件显示消息,否则不会在在WebWeb页上占用任何空间。页上占用任何空间。IsValidIsValid:指示关联的输入控件是否通过验证。:指示关联的输入控件是否通过验证。truetrue为通过,为通过,falsefalse为未通过。为未通过。EnableClientScriptEnableClientScript:指示是
14、否启用客户端验证。:指示是否启用客户端验证。truetrue为开启,为开启,falsefalse为不开启。为不开启。自定义验证控件的事件 ServerValidateServerValidate:当在服务器上执行验证时引发该事件。服务器端验证逻辑就:当在服务器上执行验证时引发该事件。服务器端验证逻辑就在该事件响应函数中实现。事件响应函数有两个参数在该事件响应函数中实现。事件响应函数有两个参数sourcesource和和argsargs。sourcesource参参数代表数代表CustomValidatorCustomValidator对象;对象;argsargs参数有两个属性,一个是参数有两个
15、属性,一个是ValueValue,表示要验,表示要验证的数据,一个是证的数据,一个是IsValidIsValid,用来设置验证后的返回结果,即是通过验证(,用来设置验证后的返回结果,即是通过验证(truetrue)还是没通过验证(还是没通过验证(falsefalse)。)。http:/ 设计后的Web窗体效果图 http:/ s As Integer=Integer.Parse(args.Value)If(s Mod 2)=0 Then args.IsValid=True Else args.IsValid=False End Ifhttp:/ clientvalidator(source,a
16、rgs)if isnumeric(args.value)thenargs.isvalid=trueelseargs.isvalid=falseend ifend subhttp:/ Language=vb AutoEventWireup=false Codebehind=WebForm1.aspx.vb Inherits=_7_6.WebForm1%WebForm1WebForm1meta name=GENERATOR content=Microsoft Visual Studio.NET 7.1meta name=CODE_LANGUAGE content=Visual Basic.NET
17、7.1meta name=vs_targetSchema content=schemas.microsoft/intellisense/ie5http:/ clientvalidator(source,args)if isnumeric(args.value)thenargs.isvalid=trueelseargs.isvalid=falseend ifend sub请输入一个偶数:http:/ Class WebForm1 Inherits System.Web.UI.Page#Region Web 窗体设计器生成的代码 Private Sub InitializeComponent()E
18、nd Sub Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents Button1 As System.Web.UI.WebControls.Buttonhttp:/ WithEvents CustomValidator1 As System.Web.UI.WebControls.CustomValidator Private designerPla
19、ceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Init InitializeComponent()End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load 在此处放置初始化页的用户代码 End Sub
20、Private Sub CustomValidator1_ServerValidate(ByVal source As Object,ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)Handles CustomValidator1.ServerValidate Dim s As Integer=Integer.Parse(args.Value)If(s Mod 2)=0 Then args.IsValid=True Else args.IsValid=False End If End SubEnd Classhtt
21、p:/ 运行结果http:/ ErrorMessage 属性,则在 ValidationSummary 控件中将不为该验证控件显示错误信息。可以通过设置DisplayMode 属性,使错误信息显示为列表、项目符号列表或单个段落。通过设置 HeaderText 属性,还可以在 ValidationSummary控件的标题部分指定一个自定义标题。通过设置 ShowSummary 属性,可以控制是显示还是隐藏ValidationSummary控件。还可通过将ShowMessageBox属性设置为true,在消息框中显示摘要。http:/ runat=server/http:/ IDID:验证错误摘要
22、控件的标识符。:验证错误摘要控件的标识符。DisplayModeDisplayMode:显示模式。取值为:显示模式。取值为ListList、BulletListBulletList或或SingleParagraphSingleParagraph,分别表示使错误信息显示为列表、项目符号列表,分别表示使错误信息显示为列表、项目符号列表或单个段落。或单个段落。ShowSummaryShowSummary:是否显示验证错误摘要。:是否显示验证错误摘要。truetrue为显示,为显示,falsefalse为不显示。为不显示。ShowMessageBoxShowMessageBox:是否在对话框中显示验证
23、错误摘要。:是否在对话框中显示验证错误摘要。truetrue为显示对为显示对话框,话框,falsefalse为不显示对话框。为不显示对话框。EnableClientScriptEnableClientScript:指示是否启用客户端验证。:指示是否启用客户端验证。truetrue为开启,为开启,falsefalse为不开启。为不开启。动手做:例例7-77-7使用验证错误摘要控件显示错误信息使用验证错误摘要控件显示错误信息【界面设计】【界面设计】在在WebWeb窗体页上放置三个窗体页上放置三个LabelLabel控件、三个控件、三个TextBoxTextBox控件、两个控件、两个ButtonBu
24、tton控件、两个控件、两个RequiredFieldValidatorRequiredFieldValidator控件、一个控件、一个RegularExpressionValidatorRegularExpressionValidator控件、一个控件、一个CompareValidatorCompareValidator控件和一控件和一个个ValidationSummaryValidationSummary控件。设计后的控件。设计后的WebWeb窗体页效果如图窗体页效果如图7-137-13所示。所示。http:/ 设计后的Web窗体页效果图http:/ RequiredFieldValida
25、tor2属性ControlToValidate:TextBox2(密码)Display:NoneEnableClientScript:FalseErrorMessage:密码为必录项。http:/ id=ValidationSummary1 style=Z-INDEX:113;LEFT:48px;POSITION:absolute;TOP:216px runat=server Width=284px Height=88px HeaderText=在您的输入中有如下错误:EnableClientScript=Falsehttp:/ 运行结果http:/ amount As Integeramou
26、nt=Integer.Parse(TextBox1.Text)IF amount 3 Thenargs.IsValid=FalseElseargs.IsValid=TrueEnd IF3.简述停用验证的方法.4.如果让你设计一个电子商城的购物页面,在页面上要求必须输入购货日期,而且为了用户录入方便,购货日期有一个默认值即当天日期,请问使用什么验证控件,其属性是如何设置的?http:/ Sub Submit_Onclick(sender As Object,e As EventArgs)IF not page.IsValid thenlDisplay.Text=超出日期范围 ElselDisplay.Text=End IFEnd Sub 请输入一个日期值: