表单验证服务器控件
验证介绍
网络形成框架包括一套易用而功能强大的用于验证的服务器控件,用来检查输入表单的错
误,并且在必要的时候,向用户显示提示信息。将验证控件添加到设计圈套表格,就像添
加其他服务器控件一样。验证控件有不同的验证类型,例如范围检查或者模式匹配,添加
一个 RequiredFieldValidator 控件可以保证用户不能跳过某一个要求输入内容的字段。
你可以对一个输入控件组合若干个验证控件。例如,你可能要求某一字段不能为空,并且
必须输入某一个范围的值。验证控件与服务器控件的有限子集协同工作。也就是说,对于
不同的控件,可能需要验证不同属性的值。下表列出了可能被验证的输入控件的属性 控件
验证属性
HtmlInputText Value
HtmlTextArea Value
HtmlSelect Value
HtmlInputFile Value
TextBox Text
ListBox SelectedItem.Value
DropDownList SelectedItem.Value
RadioButtonList SelectedItem.Value
验证控件类型
最简单的验证表单是要求输入字段。不管用户在字段中输入了任何值,它就是验证通过的
。如果页面中所有的字段都验证通过,那么页面也是验证通过的(page is valid)。下面
的例子说明了RequiredFieldValidator验证控件的使用。
C# Validator1.aspx
[运行] | [源代码]
特定的验证情况需要不同的验证控件,例如范围检查或者模式匹配。下表列出了所有验证
控件: 控件名称 描述
RequiredFieldValidator 保证用户不能忽略输入。
CompareValidator 用比较操作符(小于、等于、大于等等)比较用户的输入和常量(或者
另一个控件的属性值)
RangeValidator 检查用户的输入在特定的最大值和最小值范围之内。 你可以用成对的数
字、字符或日期来验证输入范围。范围边界可以使用能得到常量的表达式。
RegularExpressionValidator 检查用户输入与一个正则表达式定义的模式匹配。这种验证
允许你检查可预见的字符序列,例如社会保险号码、电子邮件地址、电话号码、邮政编码
等等。
CustomValidator 使用自己编写的验证逻辑来检查用户的输入。这种验证允许你检查运行
时刻得到的值。
ValidationSummary 摘要显示页面上所有验证控件的验证错误信息
客户端验证
一般来说,验证控间总是在服务器端执行验证检查。 然而,如果用户正在使用一个支持
DHTML 的浏览器工作,验证控间也能使用客户端脚本来验证。 藉由客户端确认,当表单提
交给服务器的时候 ,客户端的任何检测的错误都可以发现。当任何一个验证控间发现错误
的时候,提交到服务器的表单都会取消,同时显示验证控间的Text 属性。这就允许用户在
表单提交到服务器之前,校正输入的错误。当包含错误的字段失去焦点的时候,该字段马
上会被重新验证。这样就给用户提供了一种丰富的、交互式的验证过程。
注意:web forms页框架总是在服务器端执行验证,即使验证已经在客户端执行也是如此。
这有助于防止冒名顶替和预订事务来通过验证。
默认情况下允许客户端验证。如果客户端条件允许,高版本浏览器验证模式将自动执行。
要想禁止客户端验证,设置页面的 ClientTarget 属性为"Downlevel"("Uplevel" 强制客
户端验证)
C# Validator2.aspx
[运行] | [源代码]
显示验证错误信息
当用户的输入开始处理(例如,当表单已经提交),Web Forms页面框架传递用户的输入到
相关联的验证控件。验证控件测试用户的输入,并且设置属性来标志输入是否通过验证测
试。所有的验证控件运行完毕之后,才设置页面的IsValid属性。如果任何一个验证控件显
示了验证失败,整个页面的验证也是无效的。
如果验证控件监测到错误,该控件或者页面上的ValidationSummary 控件就会在页面上显
示一条错误提示信息。ValidationSummary 控件显示错误提示的前提是页面的IsValid等于
false。(也就是说,任何一个验证控件没有通过,都会激活ValidationSummary),它可
以监测到每一个验证控件的验证错误,并且把所有的错误一次全部显示出来。下面的例子
演示了ValidationSummary控件如何进行错误提示的。
C# Validator3.aspx
[运行] | [源代码]
使用比较验证控件CompareValidator
CompareValidator服务器验证控件用来比较两个控件的值。它使用三个关键属性来进行它
的验证。ControlToValidate 和 ControlToCompare 包含要比较的值,Operator 定义了要
进行的比较类型---例如,等于或者不等于等等。CompareValidator通过对表达式求值来执
行验证,就象下面这样:
( ControlToValidate ControlToCompare )
如果表达式的值为true,验证结果为通过。
下面的例子说明了如何使用 CompareValidator 控件
C# Validator4.aspx
[运行] | [源代码]
使用范围验证控件 RangeValidator
RangeValidator 服务器控件测试输入值是否在一个给定范围之内。RangeValidator 使用
三个关键属性来执行验证。 ControlToValidate 包含验证的对象,MinimumValue 和 Max
imumValue 定义了有效范围的最小值和最大值。
下面的例子显示了如何使用RangeValidator 控件。
C# Validator5.aspx
[运行] | [源代码]
使用正则表达式验证控件RegularExpressionValidator
RegularExpressionValidator 服务器控件用来检查用户输入是否与正则表达式定义的模式
匹配。这个控件允许你检查可预见的字符串系列,例如社会保障号码、电子邮件地址、电
话号码和邮政编码等等。
RegularExpressionValidator 使用两个关键属性来执行验证。ControlToValidate 包含要
验证的控件对象, ValidationExpression 包含用来匹配的正则表达式。
原教材对正则表达式说得比较少,这里我来补充一下:
正则表达式是一种功能强大的字符串定义规则,例如dos下熟悉的“*” 和“?” 他最早
在unix中引入。在asp.net中,他的格式是[可接受字符]{范围}。举例来说,[a-z]{3,7}表
示至少含有三个字符,最多含有7个字符,其中字符只能是’a’~’z’的范围,如”krpa
m”是合法的,而”12fe3”或者”5W”是不合法的。
在[]里面除了?-?的定义之外,也可以直接写出可接受的字符,例如[ourasp]表示只接受’
o’、’u’、’r’、’a’、’s’、’p’这几个字符,而^表示反集合,例如[^aurasp]
,表示除了’o’、’u’、’r’、’a’、’s’、’p’以外,任何字符都接受。如果表示
可接受任意字符,使用“.”来表示。例如, .{0,} 表示可以接受任意多个任意字符。
在{}里面,除了常用的{3}、{2-13}这样的格式以外,还有以下常用的格式:{n,} 表示至
少输入n个字符。
“|” 符号表示or(或),例如[a-zA-Z]{3}|[0.9]{3}表示可接受的字符是3个英文字母或者
3个数字字符。请注意他与[a-zA-Z0-9]{3}的区别。为了阅读上的方便,我们通常会把含有
“|”符号的字符串放在()中,例如([a-zA-Z]{3}|[0.9]{3})
上述的[]{}.()|都是正则表达式中的特殊符号。如果希望可接受的字符串中包含这些字符
,必须在这些字符前面加上斜线 /。例如,“/.{3}”,表示必须输入3个”.”。
下面的例子演示如何使用 ValidationExpression控件。
C# Validator6.aspx
[运行] | [源代码]
C# Validator7.aspx
[运行] | [源代码]
使用自定义验证控件 Custom Validation
CustomValidator 服务器控件调用用户自定义函数来执行一个标准验证控件无法处理得验
证。该自定义函数既可以在服务器端执行,也可以在客户端脚本(如VBscript 或JScript
)。对于客户端自定义验证,自定义函数名称必须在ClientValidationFunction 属性中明
确指出。自定义函数必须使用这样的参数格式:
function myvalidator(source, arguments)
注意 source 参数是客户端CustomValidator ,arguments参数是带有两个属性Value 和
IsValid的对象, Value 属性对象的值, IsValid 属性是一个布尔值,用来设置返回的验
证结果。
对于服务器端自定义验证,将你的自定义验证放置在验证控件的OnServerValidate 中。
下面的例子演示了如何使用CustomValidator 控件。
C# Validator8.aspx
[运行] | [源代码]
使用全部验证控件的例子
下面的例子演示了一个典型的注册表单,其中使用了本章讨论的所有验证控件
C# Validator9.aspx
[运行] | [源代码]
本章小结
1. 验证控件可以用来检验Web Forms 页面的任何输入。
2. 对于一个给定的输入字段,可以使用若干个验证控件来检验。
3. 除了服务器端验证以外,也可以使用客户端验证来提高form的可用性。
4. CustomValidator 控件可以让用户自定义验证规则。
在后续的章节,我们开始讲用户自定义控件
待续=========asp.net中文专业网(ourasp.net)==========wincheer
相关推荐
asp.net 三层架构超快速入门
1、新建sql server数据库test 2、新建user表 3、下载安装动软代码生成器 4、打开动软代码生成器,新增服务器: 点开服务器连接前的加号,在代码生成器里右击test数据库: 选择简单三层架构: 点击下一步: 点击开始生成。 5、用VS2012打开C:\test2\CodematicDemo下的项目文件,如果是VS201
ASP.NET立即上手教程 3
处理服务器控件事件每一个asp.net服务器控件都具有对象模型的特点,包含属性、方法和事件。Asp.net开发者可以使用这个对象模型来动态修改页面,以及与页面交互。下面的例子演示了asp.net页面开发者如何通过处理控件的OnClick事件,来操纵 控件的Text 属性。C# Intro6.aspx[运行] | [[源代码]这个简单的例子在功能上等于前面介绍的"Intro3" 例子。然而,你却可以
ASP.NET立即上手教程 1
一、开始1、介绍欢迎光临ASP.NET立即上手教程。ASP.NET立即上手教程是由一系列实例和支持解说构成的,他的目的是为了让开发者快速理解ASP.NET的语法、框架以及ASP.NET网络应用程序框架的强大功能。所有的实例设计的短小而容易理解,可以充分展示ASP.NET的相应功能。在学习完本教程以后,你应该熟悉以下内容:·ASP.NET语法。当然,对于熟练的ASP开发者,有些ASP.NET语法元素
pro-asp.net-core-6:深入了解 ASP.NET Core 6 的核心功能
pro-asp.net-core-6:深入了解 ASP.NET Core 6 的核心功能 项目介绍 在当今互联网技术迅速发展的时代,开发高效、安全且易于维护的Web应用程序至关重要。pro-asp.net-core-6 是一个开源项目,旨在帮助开发者和技术人员深入理解和掌握 ASP.NET Core 6 的核心功能。该项目提供了丰富的示例代码和实用工具,是学习和实践 ASP.NET Core 6 ...
全力推出--【ASP.NET(bata2)立即上手教程(c#版)】不能不看!!!
一、开始1、介绍欢迎光临ASP.NET立即上手教程。ASP.NET立即上手教程是由一系列实例和支持解说构成的,他的目的是为了让开发者快速理解ASP.NET的语法、框架以及ASP.NET网络应用程序框架的强大功能。所有的实例设计的短小而容易理解,可以充分展示ASP.NET的相应功能。在学习完本教程以后,你应该熟悉以下内容:·ASP.NET语法。当然,对于熟练的ASP开发者,有些ASP.NET语法元素
ASP.NET立即上手教程 7
Web Forms 用户控件用户控件介绍除了ASP.NET提供的内建的服务器控件外,你还可以使用已经掌握的制作WEB FORMS 页面的技术,轻松的定义自己的控件。实际上,只需要稍微改动一下,几乎任何WEB FORMS页面都可以作为服务器控件,在其他页面上重复使用。(注意用户控件的类型是System.Web.UI.UserControl, 它直接从System.Web.UI.Control继承而来
ASP.NET立即上手教程 8
数据绑定服务器控件数据绑定概述及语法Asp.net引入了一种新的声明数据绑定的语法。这种极其灵活的语法允许开发者不仅绑定数据源,而且可以绑定简单的属性、集合、表达式、甚至是调用方法所返回的结果。下面的列表显示了这种新语法的一些例子: 简单属性 Customer:集合 Orders:表达式 Contact:方法结果 Outstanding Balance:尽管这种语法看上去和asp中Response
ASP.NET 教程
摘要:本文介绍2025年最新版ASP.NET Core全栈开发教程,从环境准备到项目部署。内容涵盖.NET 9 SDK安装、项目创建方式、项目结构解析,以及EF Core数据库操作、最小API等核心技术。提供30天学习路线和优质资源推荐,包括官方文档、视频教程和实战项目。最后给出快速创建带身份验证的Web应用命令,帮助开发者快速入门ASP.NET Core 9开发。
ASP.NET立即上手教程 9
最近感冒了好几天,而且比较忙,再加上这一章的内容比较多,所以翻译的时候,间隔的时间长了一点。服务器端数据介绍数据访问是现实世界中应用程序的核心内容。Asp.net提供了一套丰富的控件,他与CLR(通用语言运行库)提供的用来管理数据访问的APIs(应用程序接口)紧密结合。本章预排几个反复使用asp.net的DateGrid控件来绑定SQL查询结果和XML数据文件的例子。本章假定学习者熟悉数据库基础和
asp.net教程下载大全
XML与ASP网站实作大全 ASP经典百例 ASP.NET 1.1专业开发 ASP.NET完全手册 ASP.NET 技术参考 ASP.netdatabase开发圣经
ASP.NET WebHooks 使用教程
ASP.NET WebHooks 使用教程 1. 项目介绍 ASP.NET WebHooks 是一个用于在 ASP.NET 4.x 和 .NET Framework 4.5 上创建和消费 WebHooks 的库。WebHooks 是一种轻量级的 HTTP 模式,提供了一个简单的发布/订阅模型,用于将 Web API 和 SaaS 服务连接在一起。当服务中发生事件时,会向已注册的订阅者发送一个 HT...
ASP.NET立即上手教程 10
发信人: jiajv (小雨~作回最出色的自己), 信区: DotNet标 题: ASP.NET立即上手教程 10发信站: 日月光华 (2003年05月05日00:31:31 星期一), 站内信件在SQL数据库中更新数据在web应用程序中更新数据库常常是一件棘手的事情。DataGrid控件提供了一些内建的支持,使得更新数据库变得容易。要想编辑行记录,DataGrid支持一个整数类型的EditIt
ASP.NET(bata2)立即上手教程(c#版)-1
一、开始1、介绍欢迎光临ASP.NET立即上手教程。ASP.NET立即上手教程是由一系列实例和支持解说构成的,他的目的是为了让开发者快速理解ASP.NET的语法、框架以及ASP.NET网络应用程序框架的强大功能。所有的实例设计的短小而容易理解,可以充分展示ASP.NET的相应功能。在学习完本教程以后,你应该熟悉以下内容:·ASP.NET语法。当然,对于熟练的ASP开发者,有些ASP.NET语法元素
ASP.NET Core HTTP Abstractions 项目教程
ASP.NET Core HTTP Abstractions 项目教程 1. 项目介绍 项目概述 ASP.NET Core HTTP Abstractions 是一个已被归档的项目,提供了 HTTP 抽象层,包括 HttpRequest、HttpResponse 和 HttpContext 等核心类,以及一些常用的 Web 工具。该项目的主要目的是为 ASP.NET Core 应用程序提供统一的 ...
ASP.NET MVC入门视频教程
自从09年三月份微软发布了ASP.NET MVC 1.0,已有超过百万的开发人员下载和使用,它的人气逐月递增。今年三月份发布了ASP.NET MVC 2.0,关于其特性、功能和下载这里不废话了。重点是下面的一些ASP.NET教程资源,: 一 ASP.NET MVC 文章推荐 ASP.NET MVC的在线文档:http://go.microsoft.com/fwli...
ASP.NET立即上手教程 2
什么是asp.net的Web FormsAsp.net Web Forms 页面框架是可升级的通用语言运行时刻(CLR)程序模型,用来在服务器端动态生成WEB页面。(美国人说话就是别扭,其实Web Forms就是asp.net编写的页面)作为ASP的合理演化(ASP.NET对现存的ASP提供语法兼容),ASP.NET Web Forms框架的设计目的,是用来解决ASP模式的不足。它提供:· 创建和
ASP.NET Proxy 项目教程
ASP.NET Proxy 项目教程 项目介绍 ASP.NET Proxy 是一个开源项目,旨在为 ASP.NET 应用程序提供代理功能。该项目允许开发者轻松地在他们的 ASP.NET 应用中集成代理服务,从而实现请求的转发和处理。通过使用 ASP.NET Proxy,开发者可以更好地控制和管理网络请求,提高应用的安全性和性能。 项目快速启动 安装 首先,确保你已经安装了 .NET SDK。然后,...
asp.net教程
十天学会ASP.Net转自:http://soft.pcdown.net/Article/Catalog5/183.html十天学会ASP.Net之第一天我认为ASP.NET比ASP难很多,希望大家做好准备。难难在实现同一个效果有很多方法,大家或许会疑惑。十天学会系列教程会清晰的写出各种方法,让大家能少一点坎坷。在ASP里面,大家几乎都是使用VB,数据库嘛,也无非是SQL和ACCE
1990




被折叠的 条评论
为什么被折叠?



