ASP.NET服务器端验证控件的使用
2014-10-21陈少燕
陈少燕
服务器控件的使用:当向Web页面中增加一个有效性验证控件时,控件就会呈现在客户端验证相关控件有效性的Javascript。
ASP.NET提供了6个有效性验证控件,其中5个是有效性控件,Cust-omvalidator控件是自定义控件。
下面介绍六个有效性验证控件的使用:
1.RequestFieldValidator控件:非空验证控件
(1)设计页面
设置属性:ControlToValidate和ErrorMessage。其中ControlTo-Validate是需要验证有效性的控件ID,ErrorMessage是当验证出现错误的时候,出现在页面上的文本信息。
(2)拓展:dropdown的非空验证
dropdown默认的话是“请选择”的选项被选中,selected=true,其他都是false。要使用非空验证必须设置InitialValue=”请选择”。
2.comparevalidator控件:比较控件
(1)设计页面
(2)设置属性:ControlToCompare和Cont-rolToValidate,分别填入需要验证的控件ID
默认属性Operator是equal。用来比较两个文本框的内容。
但是也可以对数据类型进行检查。如设置operator=DataType Check。然后设置类型type=date输入错误的日期格式就会出错误。
3.RangeValidator控件:范围验证控件
设置属性:MaximumValue和Minimum-Value,分别是控件可接受的最大值和最小值。在本题中,用户名的最大值是z,年龄的最大值是150。用户名的最小值是a,年龄的最小值是0。
注意type的类型,默认是string ,当对数字进行范围验证,需要设置type=int。
4.RegurExpressValidator控件
正则表达式验证控件,该控件功能非常强大,控件允许检查可预知的字符列表,如身份证号,电子邮件地址,电话号码或邮政编码等。
设置属性:
5.ValidatorSummary控件:错误总结控件
在ASP.net程序中,如果页面比较庞大而且需要验证的控件比较多,用户在观察错误信息时可能会出现混乱。ValidatorSummay解决了这一个难题。
如果不输入任何内容就提交,那么Error-Message的错误信息显示在ValidationSummary控件中,而页面主体显示Text的信息。如下:
(1)表中属性showmessagebox的值为Boolean型,如果设置true,页面上的错误信息不在页面中显示,而是以弹出对话框的形式来显示错误信息。Showsummary属性值同样为boolean型,如果设置其值为false,则错误汇总控件不显示汇总错误信息,反之在页面中显示错误信息。另外一个:验证汇总中可以设置headertext,表示验证摘要上方显示标题文本。
(2)ErrorMessage和Text属性通常需要搭配使用。所不同的是Text属性的错误信息一般是简短(如“必填”),ErrorMessage属性的信息应该识别有错误的表单字段(如“用户名必须填!”)
6.Customvalidator控件:自定义验证控件
(1)该控件允许用户根据程序设计需要自定义控件的验证方法。
(2)用戶自定义验证控件里面最重要的是args.Value和args.IsValid,args是函数的参数。Value和IsValid都是args的属性,一定要注意区别大小写。
args.Value:获取要验证的用户输入内容,比如文本框的内容args.IsValid:关联的控件是否通过验证,通过验证通过,就不会出现ErrorMessage的内容。
(3)用户输入是否能被3整除
拓展1:要求长度大于等于3位和输入内容必须能被3整除
长度必须大于等于3的代码如下:
protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
{
if(args.Value.Length>=3)
args.IsValid=true;
else
args.IsValid=false;
}
拓展2:CustomValidator是用户自定义的验证控件,用来响应用户自定义的验证。可以是JS的客户端函数,也可以是写在后台代码中的服务端验证函数重点内容(两个属性):
OnServerValidate:规定被执行的服务器端验证脚本函数的名称ClientValidationFunction:规定用于验证的自定义客户端脚本函数的名称最终效果如下:
代码页面:
客户端验证:
如果将args.Value替换为TextBox1.Text会出现TextBox1未定义。
所有必须用:
Var text=document.getElementByld(‘<%=textbox1.ClientID%>)将args.Value替换为text.value。
服务器验证:
protectedvoidCustomValidator2_ServerValidate(objectsource,ServerValidateEventArgs args)
{
args.IsValid = (args.Value == “服务端”)。
}