《ASP.NET程序设计教学课件作者徐占鹏单元三单元3控件的使用3验证控件课件》由会员分享,可在线阅读,更多相关《ASP.NET程序设计教学课件作者徐占鹏单元三单元3控件的使用3验证控件课件(30页珍藏版)》请在金锄头文库上搜索。
1、,验证控件,主讲教师:宋园园,学习情境,WEB开发者特别是ASP开发者,一直对数据验证比较恼火,当你好不容易写出数据提交程序的主体以后,还不得不花大把时间去验证用户的每一个输入是否合法。如果开发者熟悉JavaScript或者VBScript,可以用这些脚本语言轻松实现验证,但是又要考虑用户浏览器是否支持这些脚本语言;现在,有了ASP.NET验证控件,你可以轻松的实现对用户输入的验证,程序员们可以将重要精力放在主程序的设计上了。,任务3-2使用ASP.NET验证控件检验注册用户信息,ASP.NET 中的验证控件,为使用户更正输入错误或无效的数据,始终需要对用户输入的数据进行检查并显示错误消息 验
2、证将由在客户端或服务器中运行的验证代码执行 ASP.NET 提供了许多验证控件,用以检查输入并使验证数据更加简单方便 与其他服务器控件一样,验证控件也被添加在 ASP.NET 页面中,验证控件,在微软.NET框架推出之后,提供了一种很好的验证机 制,这就是验证控件。它可以使程序员几乎不用编写程序 就可以对用户提交的数据进行各种合法性验证。根据验证 类型的不同,ASP.NET共提供了6种验证控件。 (1)RequiredFieldValidator(必填验证控件) (2)CompareValidator(比较验证控件) (3)RangeValidator(范围验证控件) (4)RegularEx
3、pressionValidator(正则验证控件) (5)ValidationSummary(验证总结控件) (6)CustomValidator(自定义验证控件),RequiredFieldValidator控件,此控件用于检查任何窗体控件中是否包含值,用于强制用户在某些控件中必须输入内容。比如用户ID,密码等。 如果控件中不含任何值,则会生成错误消息,提交窗体,这些字段中是否有任何字段为空?,RequiredFieldValidator控件,其基本语法如下: ,RequiredFieldValidator控件,将所有控件放入窗体,同时应验证姓名和年龄输入是否为空,从工具箱中选择 Requi
4、redFieldValidator 控件,为每个文本框置入一个 RequiredFieldValidator 控件,并按下一页所示设置各个控件的属性,RequiredFieldValidator控件,姓名字段中含有一个值,因此验证后未显示错误,年龄字段为空,因此验证后显示错误消息,CompareValidator 控件,该控件主要用比较运算符对用户在控件中输入 的信息进行验证,可以和常数比较,也可以和其它 控件的值进行比较。 其基本语法如下: ,CompareValidator 控件,将一个窗体字段中输入的值与一个固定值或另一个控件中输入的值进行比较,并检查值的类型,检查 ID 是否为数字,检
5、查日期是否有效,检查截止日期是否 迟于起始日期,选择三个 CompareValidator 控件,CompareValidator 控件,检查 ID:,检查起始日期:,检查截止日期:,CompareValidator 控件,ID 应为整数值,日期值无效,ID 正确,日期正确,截止日期应迟于起始日期,RangeValidator 控件,用于验证用户输入的信息是否在指定的范围内。比如 验证用户输入的年龄应该在0-150岁之间。 其基本语法如下: ,RangeValidator 控件,检查窗体字段的值是否介于最小值与最大值之间 最小值和最大值可以为日期、号码、币值或字符串,选择两个 RangeVal
6、idator 控件,ID 应介于 1 与 100 之间,旅行日期应设于随后 3 个月内,RangeValidator 控件,private void Page_Load(object sender, System.EventArgs e) RangeVal2.MinimumValue= Convert.ToString (System.DateTime.Now.ToShortDateString(); RangeVal2.MaximumValue= Convert.ToString (System.DateTime.Now.AddMonths(3).ToShortDateString(); p
7、rivate void btnSubmit_Click(object sender, System.EventArgs e) if ( IsValid) lblMessage.Text = “您好” + txtId.Text + “ 你的旅行日期为: “ + txtJdate.Text; ,将最小值设置为当前日期,将最大值设置为自当前日期起的 3 个月,如果输入无任何错误,ID 未介于 1 与 100 之间,输入的日期已过期,而未在随后三个月内,正则表达式,正则表达式用于进行类型匹配 正则表达式可使用文字文本逐字匹配 它还可以使用元字符与复杂的字符序列相匹配 以下为几种常用的符号(更多的参见书
8、本),正则表达式,例如:国内电话号码的表达式 ( (0d2,3)|0d2,3-)?d7,8(-d1,4)? 解释: (0d2,3)|0d2,3-)? ? 表示前面的出现0或1 |表示或者,即(0d2,3)或者0d2,3- 也就是区号可以用(010), (0871),010-,0871- 表示; d7,8 表示 7位或者8位数字电话号码 (-d1,4)? ?表示出现0或1次,即1到4位分机号或者没有分机号 以下的都算满足:12345678,010-12345678,010)12345678, 010-1234567-1,0877-1234567-1234等。,RegularExpressionV
9、alidator控件,用于验证用户输入的信息是否符合正则表达 式所规定的格式。比如对用户输入的Email,电话 号码,邮政编码等进行验证。 其基本语法如下: ,RegularExpressionValidator控件,用于将在窗体字段中输入的值与正则表达式进行匹配 此控件通常与文本框控件一起使用,以检查电子邮件 ID、电话号码、信用卡号码、用户名和密码等是否有效,RegularExpressionValidator控件,选择三个 RegularExpressionValidator 控件,姓名应介于 2 至 50 个字符之间,应以有效的电子邮件格式填写 电子邮件地址,如 ,电话号码应为 10
10、位数,RegularExpressionValidator控件,用来验证姓名的控件的验证表达式的值: w2-50,用来验证电子邮件的控件的验证表达式的值: w+(-+.w+)*w+(-.w+)*.w+(-.w+)*,用来验证电话号码的控件的验证表达式的值: 0-910,在字段中输入的值与正则表达式不匹配,CustomValidator 控件,用于验证用户输入的信息是否符合自定义的验证条 件,前面介绍的几种验证控件虽然功能强大,但都有其局 限性,也就是说不可能满足所有的验证需求,对于一些特 殊的验证需求,就可以使用该控件来完成验证,该控件具 有最大的灵活性。 其基本语法如下: ,CustomVa
11、lidator 控件,按照用户指定的标准进行验证 可在特定情况下无法使用任何标准验证控件时使用 通常用来验证存储在特定数据库中的数据,选择并放置一个 CustomValidator 控件,以检查用户输入的密码,CustomValidator 控件,CustomValidator 控件的属性,private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) strVal = args.Value.ToUpper(); if ( st
12、rVal.Equals(“ADMINISTRATOR“) ) args.IsValid = true; else args.IsValid = false; private void btnLogin_Click(object sender,System.EventArgs e) if ( CusVal1.IsValid ) lblMessage.Text = “恭喜!“; ,触发 CustomValidator 控件的 ServerValidate 事件,使用 CustomValidator 代码验证密码字段,如果用户输入的密码正确,CustomValidator 控件,如果输入的密码错误,
13、则显示错误消息,输入的密码正确,ValidationSummary 控件,该控件本身没有验证功能,但它可以集中显 示所有未通过验证的控件的错误信息。 其基本语法如下: ,ValidationSummary 控件,显示窗体中生成的所有错误的摘要 摘要可以按多种模式显示:列表、项目列表或单独一段,将所有其他验证控件放入窗体,在窗体中放入一个 ValidationSummary 控件,ValidationSummary 控件,ValidationSummary 控件的属性,显示一个消息框, 用以显示错误消息,显示所有错误的摘要,窗体中的错误,Page.IsValid 属性,该属性为 Web 窗体页中的一个属性,用于检查页面中的所有验证控件是否均已成功进行验证 如果页面验证成功,则将具有值 True,否则将具有值 False,private void ValidateBtn_Click(Object Sender, System.EventArgs e) if (Page.IsValid = true) lblMessage.Text = “页面有效“; else lblMessage.Text = “页面中存在一些错误“; ,检查页面验证是否已经成功,