28
4 4 第第第第第第 第第第第第第

第 4 章 使用验证控件

  • Upload
    hali

  • View
    82

  • Download
    0

Embed Size (px)

DESCRIPTION

第 4 章 使用验证控件. 场景及任务分析. 场景 在应用中,要求用户输入的信息当中,有些项为必填项,而有些项则要求具有一定的格式,一旦用户输入不符合这些要求,往往会造成数据不能正确保存,甚至发生异常等。因此,需要验证用户的输入,规范输入数据以符合特定的要求。 任务分析 1 、在“反馈信息”中使用验证控件验证用户输入; 2 、在“在线调查”中使用验证控件验证用户输入。. 学习目标. 理解验证控件的验证模式 理解五种验证控件的使用场景并能够灵活使用 使用 ValidationSummary 控件来显示错误摘要信息. 内容. 验证控件概述 验证的对象模型 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 4 章 使用验证控件

第第 44 章章使用验证控件使用验证控件

Page 2: 第 4 章 使用验证控件

场景及任务分析场景及任务分析场景

♫在应用中,要求用户输入的信息当中,有些项为必填项,而有些项则要求具有一定的格式,一旦用户输入不符合这些要求,往往会造成数据不能正确保存,甚至发生异常等。因此,需要验证用户的输入,规范输入数据以符合特定的要求。

任务分析♫ 1 、在“反馈信息”中使用验证控件验证用户输入;

♫ 2 、在“在线调查”中使用验证控件验证用户输入。

Page 3: 第 4 章 使用验证控件

学习目标学习目标理解验证控件的验证模式理解五种验证控件的使用场景并能够灵活使用

使用 ValidationSummary控件来显示错误摘要信息

Page 4: 第 4 章 使用验证控件

内容内容验证控件概述验证的对象模型ASP.NET的验证模型使用验证控件

Page 5: 第 4 章 使用验证控件

§4.1 §4.1 验证控件概述验证控件概述一、为什么要验证用户输入二、验证过程

Page 6: 第 4 章 使用验证控件

一、为什么要验证用户输入一、为什么要验证用户输入输入验证是检验 Web 窗体中用户的输入是否

和期望的数据值、范围或格式相匹配的过程,可以减少等待错误信息的时间降低发生错误的可能性,从而改善用户访问 Web 站点的体验 ♫ 验证控件的值♫ 错误阻塞处理♫ 对欺骗和恶意代码的处理

Page 7: 第 4 章 使用验证控件

二、验证过程二、验证过程

Page 8: 第 4 章 使用验证控件

§4.2 §4.2 验证的对象模型验证的对象模型客户端和服务器端验证对象模型

客户端页变量 服务器端页属性

Page_IsValid IsValid

Page_Validators(数组),包含对页上所有验证控件的引用

Validators(集合),包含对所有验证控件的引用

Page_ValidationActive ,表示是否应进行验证的布尔值。通过编程方式将此变量设置

为 false 以关闭客户端验证

(无等效项)

Page 9: 第 4 章 使用验证控件

§4.3 ASP.NET§4.3 ASP.NET 的验证类型的验证类型

验证类型 使用的控件 说 明必需项 RequiredField

Validator要求用户必须输入某一项

与某值的比较

CompareValidator

将用户输入与一个常数值、另一个控件或特定数据类型的值进行比较(使用小于、等于或大于等比较运算符)

范围检查 RangeValidator 检查用户的输入是否在指定的上下限内。可以检查数字对、字母对和日期对限定的范围

模式匹配 RegularExpressionValidator

检查项与正则表达式定义的模式是否匹配。此类验证使您能够检查可预知的字符序列,如电子邮件地址、电话号码、邮政编码等内容中的字符序列

用户定义 CustomValidator

使用你自己编写的验证逻辑检查用户输入。此类验证能够检查在运行时派生的值

Page 10: 第 4 章 使用验证控件

§4.4 §4.4 使用验证控件使用验证控件一、验证控件的对象模型二、错误信息的布局和显示三、使用验证控件四、演示和练习:使用验证控件五、演示和练习:使用自定义验证控件六、使用验证组

♫演示和练习:如何使用验证组进行验证七、禁用验证

♫演示和练习:通过设置 CausesValidation属性来禁用验证

八、以编程的方式测试验证的有效性

Page 11: 第 4 章 使用验证控件

一、验证控件的对象模型一、验证控件的对象模型属性 说 明

Display 获取或设置验证控件中错误信息的显示行为

ErrorMessage 获取或设置验证失败时 ValidationSummary 控件中显示的错误信息的文本

Text 获取或设置验证失败时验证控件中显示的文本

ControlToValidate 获取或设置要验证的输入控件

EnableClientScript 获取或设置一个值,该值指示是否启用客户端验证

SetFocusOnError 获取或设置一个值,该值指示在验证失败时是否将焦点 设置到 ControlToValidate 属性指定的控件上

ValidationGroup 获取或设置此验证控件所属的验证组的名称

IsValid 获取或设置一个值,该值指示关联的输入控件是否通过验证

Page 12: 第 4 章 使用验证控件

二、错误信息的布局和显示二、错误信息的布局和显示布局选项 说 明

Static 即使没有可见错误信息文本,每个验证控件也将占用空间,这允许你为页定义固定的布局。多个验证控件无法在页上占用相同空间,因此你必须在页上为每个控件预

留单独的位置。这一设置只在 Internet Explorer 4.0 或更 高版本中有效,在其他浏览器中该布局将变成 Dynamic

Dynamic 除非显示错误信息,否则验证控件将不会占用空间,这允许控件共用同一个位置(例如表的单元格)。但在显示错误信息时,页的布局将会更改,有时将导致控件更改位置

None 验证控件不在页上出现

Page 13: 第 4 章 使用验证控件

二、错误信息的布局和显示二、错误信息的布局和显示显示方法 说 明

内联 在控件旁边验证控件所在的位置显示错误信息

摘要 在一个涵盖所有错误的单独摘要中显示错误信息,该方式只在用户提交页时可用。或者,可以在消息框中显示错误信息

,但是此选项仅在支持动态 HTML (DHTML) 的浏览器中可用。

内联和摘要 同一错误信息的摘要显示和内联显示可能会有所不同。可以使用此选项内联显示较为简短的错误信息,而在摘要中显示较为详细的信息,也可以在输入字段旁显示错误标志符号,而在摘要中显示错误信息。

自定义 可以创建自己需要的错误信息显示

Page 14: 第 4 章 使用验证控件

三、使用验证控件三、使用验证控件RequiredFieldValidator 控件

♫ 在页中添加 RequiredFieldValidator 控件并将其链接到必需的控件,可以指定用户在ASP.NET 网页上的特定控件中必须输入信息

Page 15: 第 4 章 使用验证控件

三、使用验证控件三、使用验证控件CompareValidator 控件

♫ 使用某一可指定的比较运算符来比较某控件中的特定字段与另一控件中的特定字段,并以此来确定有效性

Page 16: 第 4 章 使用验证控件

三、使用验证控件三、使用验证控件RangeValidator 控件

♫ 指定 MaximumValue和 MinimumValue 两个属性,验证另一控件值是否在允许的范围内

Page 17: 第 4 章 使用验证控件

三、使用验证控件三、使用验证控件RegularExpressionValidator 控件

♫ 提供用于验证另一控件的值是否与所提供的正则表达式相匹配的控件功能

ZIP: <asp:TextBox id=txtZIP runat="SERVER"></asp:TextBox> <asp:RegularExpressionValidator id=txtZIP_validation runat="SERVER" ControlToValidate="txtZIP" ErrorMessage="Enter a valid US ZIP code." ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator>

Page 18: 第 4 章 使用验证控件

三、使用验证控件三、使用验证控件CustomValidator 控件

♫ 自定义验证函数,来验证控件的输入值

// 定义验证函数protected void Text_ServerValidate (object source, ServerValidateEventArgs args){ args.IsValid = (args.Value.Length >= 8);}// 使用验证函数<asp:textbox id=TextBox1 runat="server"></asp:textbox><asp:CustomValidator id="CustomValidator1" runat="server" OnServerValidate=" Text_ServerValidate " ControlToValidate="TextBox1" ErrorMessage=" 输入字符不能少于 8 个。 "></asp:CustomValidator>

Page 19: 第 4 章 使用验证控件

演示和练习:使用验证控件演示和练习:使用验证控件

演示和练习:使用自定义验证控演示和练习:使用自定义验证控件件

Page 20: 第 4 章 使用验证控件

四、使用验证组四、使用验证组在页面上控件比较多时,可以将不同的控件

归为一组, ASP.NET 在对每个验证组进行验证时,与同页的其他组无关

通过将要分在同一组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组

Page 21: 第 4 章 使用验证控件

演示和练习:如何使用验证组进演示和练习:如何使用验证组进行验证行验证

Page 22: 第 4 章 使用验证控件

五、禁用验证五、禁用验证设置 ASP.NET 服务器控件的属性

( CausesValidation="false" )来避开客户端和服务器的验证,而不只是客户端验证

禁用验证控件,即将控件的属性 Enabled设置为 false ,使它根本不在页面上呈现并且不进行使用该控件的验证

如果要执行服务器上的验证,而不执行客户端的验证,则可以将单独验证控件设置为不生成客户端脚本,即将其属性EnableClientScript 设为 false

Page 23: 第 4 章 使用验证控件

演示和练习:通过设置演示和练习:通过设置CausesValidationCausesValidation 属性禁用验证属性禁用验证

Page 24: 第 4 章 使用验证控件

六、以编程的方式测试验证的有六、以编程的方式测试验证的有效性效性

测试常规错误状态♫ 在代码中测试页的 IsValid 属性,如果为true 则执行代码;否则不执行

void Button1_Click(object sender, System.EventArgs e){ if (IsValid) { // Perform database updates or other logic here. }}

Page 25: 第 4 章 使用验证控件

六、以编程的方式测试验证的有六、以编程的方式测试验证的有效性效性

测试单独控件的错误状态♫ 利用 Page 公开的 Validators 属性来检查每

个验证控件的 IsValid 属性 if (this.IsPostBack){ this.Validate(); if (!this.IsValid){ string msg = ""; foreach (IValidator aValidator in this.Validators){ if (!aValidator.IsValid){ msg += "<br>" + aValidator.ErrorMessage; } } Label1.Text = msg; }}

Page 26: 第 4 章 使用验证控件

回顾回顾验证控件概述验证的对象模型ASP.NET 的验证模型使用验证控件

Page 27: 第 4 章 使用验证控件

实验实验

参照实验手册,并在教师指导下完成实验报告。

Page 28: 第 4 章 使用验证控件

习题习题

详见本书第 4 章后习题部分,请学生独立完成。