验证控件
- 格式:doc
- 大小:1.62 MB
- 文档页数:16
C#验证控件的使⽤RequiredFieldValidatorCompareValidator使⽤验证控件可以向服务器提交表单数据时验证表单内容,下⾯以RequiredFieldValidator和CompareValidator为例说明验证控件的⽤法RequiredFieldValidator⽤来检查必填字段CompareValidator控件可以⽤来检查数据类型或者⽐较⼤⼩。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ValidationControl.aspx.cs" Inherits="WebApplication1.ValidationControl" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title></title><style type ="text/css">.red{color:Red ;}</style></head><body><form id="form1" runat="server"><div><fieldset ><legend title ="123">Product Order Form </legend><asp:Label ID ="lblProductName" runat ="server" Text =" Product Name:" AssociatedControlID ="txtProductName"></asp:Label><br /><asp:TextBox ID ="txtProductName" runat ="server"></asp:TextBox><asp:RequiredFieldValidator ID ="reqProductName" ControlToValidate="txtProductName" runat ="server" Text ="(Require)" CssClass ="red " SetFocusOnError ="true"></asp:RequiredFieldValidator><br /><asp:Label ID ="lblPrice" runat ="server" Text ="Price:" AssociatedControlID ="txtPrice"></asp:Label><asp:TextBox ID ="txtPrice" runat ="server"></asp:TextBox><asp:RequiredFieldValidator ID ="reqPrice" runat ="server" ControlToValidate="txtPrice" Text ="(Require)" CssClass ="red " SetFocusOnError ="true"></asp:RequiredFieldValidator><asp:CompareValidator ID ="comPrice" runat ="server" ControlToValidate ="txtPrice" Operator ="DataTypeCheck" Text ="Invalid Value" Type ="Currency" CssClass ="red " SetFocusOnError ="true"></asp:CompareValidator <br /><asp:Label ID ="lblQty" runat ="server" Text ="Qty:" AssociatedControlID ="txtQty"></asp:Label><asp:TextBox ID ="txtQty" runat ="server"></asp:TextBox><asp:CompareValidator ID ="comQty" runat ="server" ControlToValidate="txtQty" Text ="Invalid Value" CssClass ="red " Display ="Dynamic" Operator ="DataTypeCheck" Type ="Integer" SetFocusOnError ="true"></asp:CompareValida <br /><asp:Button ID ="txtSummit" runat ="server" Text ="提交" onclick="txtSummit_Click"/></fieldset><asp:Label ID ="lblResult" runat ="server"></asp:Label></div></form></body></html>View Codepublic partial class ValidationControl : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void txtSummit_Click(object sender, EventArgs e){if (Page.IsValid){lblResult.Text = "Product Name:" + txtProductName.Text + "<br/>" +"Price:" + txtPrice.Text + "<br/>" +"Qty:" + txtQty.Text;}}}View Code例⼦说明:1.验证控件ControlToValidate属性⽤于指定需要验证的控件;2.验证控件的Text属性⽤于验证错误时显⽰错误信息,⼀般Text属性只是简单的⽂字,但是Text属性也⽀持html,⽐如<img src="error.gif" ali=""/>⽤⼀个图⽚代替简单的⽂字;3.如果要验证信息显⽰红⾊,或者别的特殊样式,可以使⽤CssClass指定样式;4.验证控件的 Display属性,Display属性有Dynamic、Static、None三个值,默认Static,Display为Static时⽣成的错误信息如下<span id="reqPrice" class="red " style="visibility: visible;">(Require)</span>Display为Dynamic⽣成的错误信息为<span id="reqPrice" class="red " style="display: none;">(Require)</span>两者的区别是visibility: visible虽然隐藏了,但还是占据窗⼝空间,display: none不占窗⼝空间,我们应该设置Display为Dynamic这样验证信息后⾯的控件就不会被推倒右边None ⽣成的标签如下,错误信息为空,所以不能⽤来显⽰错误提⽰<span id="reqPrice" class="red " style="display: none;"></span>5.验证控件默认在客户端和服务器端都进⾏验证,⼀些低端的浏览器不⽀持JavaScript,所以在服务器端进⾏验证能保证数据的有效性。
VS中验证控件的作用2010-04-14 13:54:20| 分类:默认分类| 标签:|字号大中小订阅1、RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么,将不能提交信息。
RequiredFieldValidator控件中,主要设置三个属性:ErrorMessage属性修改更具体的错误描述信息。
RequiredFieldValidator属性是要设置的要验证的控件ID。
2、CompareValidator:比较验证。
比较两个字段值是否相等,如密码和确认密码两个字段是否相等;比较一个字段与一个具体的值。
ErrorMessage属性修改更具体的错误描述信息。
RequiredFieldValidator属性是要设置的要验证的控件ID。
ControlToCompare属性是你要进行比较的控件ID。
(参照的控件)。
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPass"ControlToValidate="TextBox1" ErrorMessage="密码输入不一致,请重新输入" Operator="GreaterThan"Type="Integer"></asp:CompareValidator>3、RangeValidator:范围验证。
验证一个字段是否在某个范围中。
控件代码:<asp:RangeValidator ID="RangeValidator1" runat="server"></asp:RangeValidator>我在后台代码中设置的:// 设置区间的最小值this.RangeValidator1.MaximumValue = "99";// 设置区间的最大值this.RangeValidator1.MinimumValue = "50";// 设置验证错误后的现实消息this.RangeValidator1.ErrorMessage = "输入错误区间";// 设置验证控件的验证对象this.RangeValidator1.ControlToValidate = this.TextBox3.ID;4、RegularExpressionValidator:正则表达式验证。
jQuery formValidator表单验证插件是什么?jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。
你可以划分多个校验组,每个组的校验都是互不影响。
对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)脚本控制。
目前支持5种大的校验方式,分别是:inputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、compareValidator(提供2个对象的比较,目前可以比较字符串和数值型)、ajaxValidator(通过ajax到服务器上做数据校验)、regexValidator(提供可扩展的正则表达式库)、functionValidator (可使用外部函数来做校验)本插件于其他校验控件最大的区别有3点:1、校验功能可以扩展。
对中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号码、日期等等这些控制,别的表单校验控件是代码里写死的,而formValidator是通过外部js文件来扩展的,你可以通过写正则表达式和函数来无限的扩展这些功能。
2、实现了校验代码于html代码的完全分离。
你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。
使美工(界面)和javascript工程师的工作不交织在一起3、你只需写一行代码就能完成一个表单元素的所有校验。
你只需要写一行代码就能完成一下所有的控制∙支持所有类型客户端控件的校验∙支持jQuery所有的选择器语法,只要控件有唯一ID和type属性∙支持函数和正则表达式的扩展。
提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。
∙支持2种校验模式。
第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式)∙支持多个校验组。
实验1 服务器控件和验证控件
一、实验目的
1、熟练掌握服务器控件的使用。
2、熟练掌握验证控件的使用。
二、实验内容
1、编写一个Web应用程序Login,该程序用于检查用户登录信息。
当用户输入正确的用户名和密码时,显示登录成功的消息。
否则,显示登录不正确的消息。
如图所示:
2、完成如下选择城市的程序,要求单击左向箭头时,把右边ListBox中的所有选中项移到左边的ListBox中;要求单击右向箭头时,把左边ListBox中的所有选项移到右边ListBox中。
3、编写一个注册窗口,含账号、E-mail、电话号码、移动电话号码、密码、确认密码,要求:
1)账号要以英文字母开头,而且最少要输入四个字符;
2)E-mail要求为合法格式;
3)密码与确认密码要相等;
4)电话号码只能为数字,且长度为8位;
5)移动电话格式为13开头的11位数字。
三、实验报告要求
1、源程序清单。
2、程序运行结果。
3、调试过程中遇到的问题和解决的方法。
4.0 验证控件的综合应用
在本章中,主要介绍了验证控件的单个应用。
本扩展的目的主要是实现使用多个验证控件,完成个人信息的验证和提交功能。
(1)在Visual Studio2010中,执行【文件】|【新建】|【网站】命令,新建名为ShowContent的空网站。
(2)打开【文件】|【新建文件】命令,弹出【添加新项】对话框。
在该对话框中选择“Web窗体”模板,并输入文件名称为Web.aspx,单击【添加】按钮。
然后可以看到在【解决方案资源管理器】面板中会显示文件Web.aspx以及它的代码页文件Web.aspx.cs。
(3)在【解决方案资源管理器】面板中,双击“Web.aspx”树状菜单元素,打
(4)在【解决方案资源管理器】面板中,双击“Web.aspx.cs”树状菜单元素,
在上述代码中,主要实现的是用户信息的显示功能。
当用户单击“注册”按钮,首先对用户的个人信息进行验证,如果通过验证在Label中显示用户的个人信息;否则,显示错误信息。
(5)在浏览器中打开该文件,如果直拉单击“注册”按钮,验证控件会出现如图7-16的提示。
图7-16 执行结果
(6)当输入用户密码不一致或输入E-mail地址不正确,验证控件会现如图7-17的提示。
(7)当输入正确的用户信息,单击“注册”按钮,结果如图7-18所示。
图7-18 执行结果。
验证控制之CustomValidator控件CustomValidator控件也称为自定义验证控件,通过RequiredFieldValidator控件结合CompareValidator控件、RangeValidator控件或RegularExpressionValidator控件之中的一个或多个就能满足开发中的90%以上的验证要求,但是有一些特殊的验证用上述控件组合无法达到验证要求,比如要求用户填写一个奇数。
为了满足一些特殊的验证要求,在中还有一个CustomValidator控件,在这个控件中可以自己写验证规则。
CustomValidator类是BaseValidator抽象类,所以CustomValidator控件拥有CustomValidator控件用于在客户端验证的函数有两个参数,第一个是表示被验证的控件,第二个表示事件数据。
第二个参数有两个属性:IsValid用于表示被验证控件是否通过验证,Value属性表示被验证的控件的值。
下面就是一个客户端验证函数的例子:<script type="text/javascript">//obj表示被验证的控件//args表示事件数据,args有两个属性//IsValid指示控件是否通过验证//Value表示被验证的控件的值function CheckEven(obj,args){var numberPattern=/\d+/;//由于控件的ValidateEmptyText设置为true//所以当控件没有值时进行客户端验证if(!numberPattern.test(args.Value))//用javascript进行客户端正则验证{args.IsValid=false;//表示未通过验证,出现错误提示}else if(args.Value%2==0){args.IsValid=true;//表示通过验证,不出现错误提示}else{args.IsValid=false;//表示未通过验证,出现错误提示}}</script>除了客户端验证之外,在CustomValidator控件中还能自己写服务器端写验证方法,它有一个OnServerValidate事件,同它的客户端处理函数一样,处理这个事件的委托也需要两个参数,第一个是表示被验证的控件,第二个表示事件数据。
⾃定义验证控件CustomValidator的使⽤CustomValidator验证控件,可以⾃定义验证函数,实现其它⼏个验证控件不能实现的验证规则,最简单的应⽤如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidatorDemo.aspx.cs" Inherits="CustomValidatorDemo" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>⾃定义验证控件的使⽤</title><script type="text/javascript">function IsEven(source, args){if (args.Value % 2 == 0 ){arg.IsValid = true;}else{args.IsValid = false;}}</script></head><body><form id="form1" runat="server"><div>偶数:<asp:TextBox ID="txtEven" runat="server"></asp:TextBox><asp:CustomValidator ID="valxEven" runat="server" ControlToValidate="txtEven" ErrorMessage="所输数据不是偶数"ClientValidationFunction="IsEven">*</asp:CustomValidator><br /><asp:ValidationSummary ID="valsErrorMessage" runat="server" /><asp:Button ID="btnSubmit" runat="server" Text="提交" /></div></form></body></html>【说明】1、函数名由 ClientValidationFunction="IsEven"指定,函数形参名字可以⾃⼰决定,⽐⽅有些实例把args写成arguments,也是可以的;2、形参args主要有两个属性args.Value和arg.IsValid,这两个属性要注意⼤⼩写3、⾃定义验证控件可触发onservervalidate事件,在服务器端也可以编写验证代码,但,如果这样做,就有点失去了验证控件在客户端实现验证的意义了。
DevExpress基础验证控件1.D某ErrorProvider:错误提示控件,用法类似于VS的winform控件中的ErrorProvider。
下面为一个使用实例,验证文本框输入是否为数字:①.添加Sytem.Te某t.RegularE某preion引用。
②.在设计视图上拖一个te某tEdit控件te某tEdit1。
③.验证输入是否为数字,不是显示错误提示。
[html]viewplaincopyprint1.publicboolINumeric(tringNumeric)2.{3.return(newRege某(\;4.}5.privatevoidimpleButton1_Click(objectender,EventArge)6.{7.InitValidationRule();8.d某ErrorProvider1.ClearError();9.if(INumeric(thi.te某tEdit1.Te某t)==fale)10.{11.d某ErrorProvider1.SetError(te某tEdit1,\输入要为数字!\验证的控件,错误提示)12.}13.}2.D某ValidationProvider:验证控件,类似于VS的web控件中的\验证控件\下面为D某ValidationProvider使用实例:①.添加DevE某pre.某traEditor.D某ErrorProvider引用。
②.在设计视图上拖两个te某tEdit控件te某tEdit2和te某tEdit3。
③.实现验证te某tEdit2不可为空,te某tEdit3输入值在0-100之间:[charp]viewplaincopyprint1.privatevoidInitValidationRule()2.{3.ConditionValidationRulenotEmptyValidationRule=newCondition ValidationRule();4.notEmptyValidationRule.ConditionOperator=ConditionOperator .INotBlank;//验证条件5.notEmptyValidationRule.ErrorTe某t=\此栏不能为空!\;//提示信息6.notEmptyValidationRule.ErrorType=rmation;//错误提示类别7.d某ValidationProvider1.SetValidationRule(te某tEdit2,notEmptyValidationRule);8.ConditionValidationRulerangeValidationRule=newConditionVal idationRule();9.rangeValidationRule.ConditionOperator=ConditionOperator.Be tween;10.rangeValidationRule.Value1=0;11.rangeValidationRule.Value 2=100;12.rangeValidationRule.ErrorTe某t=\之间任意一数字!\;13.rangeValidationRule.ErrorType=rmation;14.d某ValidationProvider1.SetValidationRule(te某tEdit3,rangeValidationRule);15.}。