`

ASP.NET验证控件[转]

 
阅读更多
一、前言
        在Web应用程序中,大都是对数据的提供或收集,对于数据的有效性验证是非常重要的,验证就是给所收集的数据应用的一系列规则。
        为进行有效性验证而收集的数据来自于在应用程序中提供的Web窗体,Web窗体由不同的类型的HTML元素组成,可以对窗体元素应用不同的验证规则,对元素应用的规则越多,应用到数据上的有效性验证就越严格。
         验证可以有客户端和服务器段的验证。客户端的验证主要是用JavaScript脚本,效率高,响应时间短,但安全性不好;服务器段的验证主要是用C#语言在后台验证,安全高了,但每次提交都要把数据传到后台,太慢。
        ASP.NET不仅把窗体的验证作为服务器控件引入,还使这些控件智能化。如果浏览器支持JavaScript,而ASP.NET可以发送JavaScript,验证就在客户端进行;如果客户机不支持用于验证的JavaScript,这些JavaScript就被忽略,验证就在服务器上进行。
二、ASP.NET验证控件


在ASP.NET中验证控件如下:


验证类型
使用的控件
说明

必填字段验证
RequiredFieldValidator
确保用户不会跳过某一项输入。

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

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

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

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

验证总结
ValidationSummary
以摘要的形式显示页上所有验证程序的验证错误。



下面,我们来看这些控件的使用

1、RequiredFieldValidator(必填字段验证)的使用
  RequiredFieldValidator控件使用的标准代码如下:

1<asp:RequiredFieldValidator ID="Validator_Name" runat="Server" ControlToValidate="要检查的控件名"
2                ErrorMessage="出错信息" Display="Static|Dymatic|None">
3占位符
4</asp:RequiredFieldValidator>在以上标准代码中:
ControlToValidate:表示要进行检查控件ID;
ErrorMessage:表示当检查不合法时,出现的错误信息;
Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在ValidatorSummary中显示;
占位符:表示Display为Static时,错误信息占有"占位符"那么大的页面空间; 

现在,让我们看一个实例:

1<asp:TextBox ID="txtName" runat="Server" />
2 <asp:RequiredFieldValidator ID="Validator1" runat="Server" ControlToValidate="txtName"
3                ErrorMessage="姓名必须输入" Display="Static">
4*姓名必须输入
5 </asp:RequiredFieldValidator>在以上例子中,检查txtName控件是否有输入,如果没有,显示错误信息"姓名必须输入"。

注意:以上代码和下面其他控件的代码最好放入Form中,和ASP中不一样的是,Form最好写为这样:
<Form RunAt="Server">其他代码</Form> 
这样,Form在服务器端执行,提交才会有效;

2、CompareValidator(比较验证)控件
比较控件比较两个控件的输入是否符合程序设定,大家不要把比较仅仅理解为"相等",尽管相等是用的最多的,其实,这里的比较包括范围很广,大家看标准代码就会明白。

CompareValidator控件的标准代码如下:

1<asp:CompareValidator ID="Validator_ID" runat="Server" ControlToValidate="要验证的控件ID"
2                ControlToCompare="要比较的控件ID" ErrorMessage="错误信息" Type="String|Integer|Double|DateTime|Currency"   Operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
3              Display="Static|Dymatic|None">
4占位符
5</asp:CompareValidator>在以上标准代码中:
Type:表示要比较的控件的数据类型;
Operator:表示比较操作,这里,比较有7种方式;
其他属性和RequiredFieldValidator相同;

  在这里,要注意ControlToValidate和ControlToCompare的区别,如果operate为GreateThan,那么,必须ControlToCompare大于ControlToValidate才是合法的,这下,应该明白它们两者的意义了吧?例子程序请参考RequiredFieldValidator控件,对照标准代码自己设计。

3、RangeValidator(范围验证)控件
验证输入是否在一定范围,范围用MaximumValue和MinimunVlaue来确定。

RangeValidator控件标准代码如下:

1<asp:RangeValidator ID="Vaidator_ID" runat="Server" ControlToValidate="要验证的控件ID"
2                Type="String|Integer|Double|DateTime|Currency" MinimumValue="最小值" MaximumValue="最大值"
3                ErrorMessage="错误信息" Display="Static|Dymatic|None">
4占位符
5 </asp:RangeValidator>在以上代码中:
   用MinimumValue和MaximumValue来界定控件输入值得范围,用type来定义控件输入值的类型。


4、RegularExpresionValidator(正则表达式)控件
  正则表达式验证控件的功能非常强大,你可以自己容易构造验证方式,我们先来看看标准代码:

1 <asp:RegularExpressionValidator ID="Validator_ID" runat="Server" ControlToValidate="要验证控件名"
2                ValidationExpression="正则表达式" ErrorMessage="错误信息" Display="Static|Dymatic|None">
3占位符
4</asp:RegularExpressionValidator>在以上标准代码中,ValidationExpression是重点,现在来看看它的构造:
在ValidationExpression中,不同的字符表示不同的含义:
星号"*":表示和其他表达式一起,表示容易组合;
方括号“[ ]”:用与定义可接受的字符。[abc123] 表示控件只能接受 a,b,c,1,2,3 这6个字符;[A-Z]表示任意大写字母;
反集合符号“ ^ ”:用于定义不可以接受的字符。[^a-h] 表示控件除了 a 到 h 8个字符外,都可以接受;
花括号“{ }”:定义必须输入的字符个数。{6}表示只能输入6个字符 ; {6,}表示必须输入6个以上,无上限 ; {2,6} 表示必须输入2至6个字符;但是花括号必须放在方括号后面,例如 [a-z]{4} 表示必须输入 4位a和z之间的任意字符。
小圆点“ . ”:用于代表任意字符。 例如 .{3,6}表示接受3到6个任意字符。
竖线“ | ” :用于表示 “或”的逻辑符号。例如 [1-9]{3,6}|[A-Za-z]{3} 表示可以接受 3到6个数字或者 3个字母。 (大小写都可以区别的哦)
小括号“()” :用于分块,与数字运算中的小括号作用类似。
斜线“ \ ” :若希望可以接受的字符包含上述特殊字符。例如 \([0-9]{3}\),表示输入格式为“(xxx)”的电话区号。

注意,在以上表达式中,引号不包括在内;
举例:正则表达式:".*[A-Z]"表示数字开头的任意字符组合其后接一个大写字母。


5、CustomValidator(自定义验证)控件
该控件用自定义的函数界定验证方式,其标准代码如下:

1<asp:CustomValidator ID="Validator_ID" runat="Server" ControlToValidate="要验证的控件"
2 OnServerValidate="服务器段验证函数" ClientValitationFunction="客户段验证函数" ErrorMessage="错误信息"       Display="Static|Dymatic|None"></asp:CustomValidator>
3占位符
4</asp:CustomValidator>以上代码中,用户必须定义一个函数来验证输入。

6、ValidationSummary(验证总结)控件
  该控件不对Web窗体中输入的数据进行验证,而是收集本页的所有验证错误信息,并可以将它们组织以后再显示出来。其标准代码如下:


1<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="头信息" ShowSummary="True|False"
2                DiaplayMode="List|BulletList|SingleParagraph" />  在以上标准代码中,HeadText相当于表的HeadText,DisplayMode表示错误信息显示方式:List相当于HTML中的<BR>;BulletList相当于HTML中的<LI>;SingleParegraph表示错误信息之间不作如何分割。
如下代码,将错误信息显示在一个对话框中。

1<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="ValidationSummaryName"
2            ShowSummary="False" ShowMessageBox="True" />对以上6个验证控件需要补充说明的如下:

      可以通过Page的属性ClientTarget可以设置所有的验证控件是否会在客户端验证。只要将这个属性设置为UpLevel就可以了,DownLevel下,所有的验证都只会在服务器上执行了。默认情况下,大多数浏览器都是会在客户端验证的,所以我并不知道它的这个属性是不是默认UpLevel了。当然,如果要为单独的一个或几个验证控件设置的话,那么还是使用原先的EnableClientScript。

     另外还增加了一个SetFoucsOnError属性。就是当出错的时候将焦点移到控件上。这样就不会使用户在点击了按钮之后因为没看到错误提示而在那发愣了。另外一个就是CustomValidator增加了ValidateEmptyText属性来让用户自定义验证控件在值为空时也验证。

      下一个有用的特性是ValidationGroup属性,将你在一个按钮点击时要验证的控件设置为同一个组名吧,而另一个按钮要验证的设置为另一个名,这样就可以使点击一个按键时只发生期望的验证,而不是所有的验证,而不必在服务器端显示来控件。注意,按钮也应该设计ValidationGroup属性。

      有些情况下客户不想显示文字而是图片或声音时,验证控件的ErrorMessage属性的值可以是一个HTML字符串,例如errorMessage=’<img src=”picture.gif”>’,这样可使页面生动。
分享到:
评论

相关推荐

    ASP.NET验证控件和用户控件

    网页制作ASP.NET验证控件和用户控件.ppt

    asp.net验证控件 ppt讲解

    ASP.NET验证控件是开发Web应用程序时用于确保用户输入数据有效性和准确性的工具。这些控件简化了数据验证过程,可以在客户端(用户浏览器)或服务器端执行,提供了一种跨浏览器兼容的方式,使得验证功能独立于用户的...

    Web程序设计实验1ASP.NET标准控件和验证控件

    1、熟练掌握ASP.NET服务器控件的使用。 2、熟练掌握验证控件的使用。 二、实验内容 1、编写一个Web应用程序Login,该程序用于检查用户登录信息。当用户输入正确的用户名和密码时,显示登录成功的消息。否则,显示...

    Asp.Net验证控件应用--用户注册页面

    1、本程序使用基于Asp.Net的6种Asp验证控件; 2、验证控件十分方便,可以帮助我们很好解决提示用户输入的作用,达到一种很好的用户体验效果。 3、本程序,采用了非空验证(RequireValidator)、范围验证...

    ASP.NET 服务器控件之实现验证控件

    ASP.NET 服务器控件中的验证控件是构建Web应用程序中不可或缺的一部分,它们主要负责检查用户输入的数据是否符合预设的规则,从而确保数据的完整性和安全性。这些控件简化了开发过程,避免了手动编写复杂的客户端和...

    Asp.net 验证码控件

    除了传统的图像验证码,还有更多高级的验证手段,如滑动验证码、点击验证点、声音验证码等,这些在Asp.net中也可通过自定义控件或第三方库实现。 **6. 性能优化** 由于生成和验证验证码会增加服务器负载,所以应...

    asp.net Ajax控件

    在描述中提到的,如评分功能、无刷新验证用户名以及ajax级联菜单等,都是ASP.NET AJAX控件实现的典型应用场景。 评分功能通常通过AJAX实现无刷新的星评系统,用户可以无需等待整个页面刷新即可完成评分,并实时显示...

    实验5 ASP.NET 3.5验证控件.ppt

    实验5 ASP.NET 3.5验证控件.ppt

    ASP.NET验证控件讲解

    ASP.NET验证控件是开发Web应用程序时不可或缺的一部分,它们用于确保用户输入的数据符合预设的条件,从而保证数据的完整性和安全性。在这个超详细的讲解中,我们将深入探讨非空验证和正则表达式验证,以及其他重要的...

    asp.net验证控件详解

    ASP.NET验证控件是开发Web应用程序时不可或缺的工具,它们为用户提供输入数据的实时检查,确保数据的质量和安全性。在ASP.NET中,有六种主要的内置验证控件,每一种都有其特定的用途和优势。这篇详尽的指南将深入...

    .net验证控件的使用

    总之,.NET验证控件是ASP.NET开发中不可或缺的一部分,它们提供了一套直观且强大的验证机制,帮助开发者创建安全、用户友好的Web应用程序。熟练掌握这些控件的使用,能有效提升开发效率和应用质量。

    asp.net验证控件_学习课件

    asp.net验证控件_学习课件 数据验证控件是一个集合,使用验证控件可以验证输入的信息是否符合我们特定的标准。

    asp.net服务器控件高级编程(带源文件)

    3. **验证控件**:ASP.NET提供了多种验证控件,如RequiredFieldValidator、CompareValidator等,用于确保用户输入的数据符合预期格式。开发者可以通过配置验证控件的属性,实现不同类型的验证规则。 4. **状态管理*...

    ASP.NET自定义验证控件

    1. **定义验证控件类**:继承自System.Web.UI.WebControls.BaseValidator类,这是所有ASP.NET验证控件的基类。通过这个基类,我们可以访问到验证控件的核心属性和方法,如ControlToValidate、Text、ErrorMessage等。...

    ASP.NET上传控件

    ASP.NET上传控件是.NET框架下用于处理用户在网页上上传文件的一种组件。在ASP.NET应用中,上传控件使得用户能够方便地将本地文件上传到服务器,这在许多应用场景中都是必需的功能,例如文件共享、图片上传或文档提交...

    ASP.NET时间控件

    ASP.NET时间控件是开发Web应用程序时常用的组件,主要用于用户界面中输入或选择日期和时间。在ASP.NET框架中,有多种时间控件可供选择,它们提供了丰富的功能和易用性,使得开发者能够轻松地集成日期和时间选择功能...

    一个很好用的asp.net上传控件

    ASP.NET上传控件是网页应用开发中的重要组成部分,它允许用户在服务器端处理大量数据时上传文件。在本文中,我们将深入探讨“一个很好用的ASP.NET上传控件”,了解其特点、使用方法以及如何在项目中集成和操作。 ...

    ASP.NET控件 和 验证控件

    **验证控件**是ASP.NET中用于确保用户输入数据有效性的工具,常见的有`RequiredFieldValidator`(验证字段非空)、`CompareValidator`(比较输入值与特定值或表达式)、`RangeValidator`(验证数值或日期范围)、`...

    asp.net服务器控件与组件开发

    《ASP.NET服务器控件与组件开发》是一门深入探讨ASP.NET技术中服务器控件和组件构建的专业主题。在ASP.NET框架中,服务器控件和组件是网页开发的核心元素,它们为开发者提供了丰富的功能,简化了网页交互逻辑的实现...

Global site tag (gtag.js) - Google Analytics