asp.net 六大常用控件的使用方法

作者:袖梨 2022-06-25

a
ASP.NET功能强大的一种体现就是具有丰富的Web控件,这里我们谈谈其中的一种—验证控件

。它总结了各种Web数据校验方式,设计成了今天这种通用的ASP.NET控件形式。

ASP.NET公有六种验证控件,分别如下: 
控件名 功能描叙
RequiredFieldValidator(必须字段验证) 用于检查是否有输入值
CompareValidator(比较验证) 按设定比较两个输入
RangeValidator(范围验证) 输入是否在指定范围
RegularExpressionValidator(正则表达式验证) 正则表达式验证控件
CustomValidator(自定义验证) 自定义验证控件
ValidationSummary(验证总结) 总结验证结果


--------------------------------------------------------------------------------

目录
1. 验证控件简介
2. 验证控件的使用方法
3. 小结

--------------------------------------------------------------------------------

1. 验证控件简介
顾名思义,验证控件就是校验用户输入数据正确性的控件,如用户在文本框中输入数据后,

便显示一条提示信息,表明了校验的数据是不合法的。验证过程既可以在服务器上执行,也

可以在客户机上执行,在客户端运行的校验代码是数据提交之前被执行的,因此可以提高程

序的性能。ASP.NET的验证控件可以进行多种校验,如数据范围检查、数据间的比较和自定义

校验等等,下面的内容将会逐一介绍这些验证控件。

--------------------------------------------------------------------------------

2. 验证控件的使用方法
① RequiredFieldValidator控件
当页面上的控件要求必须输入数据时,RequiredFieldValidator就起作用了,

ControlToValidate属性选择需要验证的控件,而ErrorMessage属性则是校验不合法后显示的

错误提示信息。


 
    RequiredFieldValidator Example
 

 


    Name:
    <asp教程:TextBox id="TextBox1" runat="server" >
    ErrorMessage="Please enter your name"

ControlToValidate="TextBox1">
   
 



在以上标准代码中:
  ControlToValidate:表示要进行检查控件ID;
  ErrorMessage:表示当检查不合法时,出现的错误信息;
  Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;

Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在

ValidatorSummary中显示;
  占位符:表示Display为Static时,错误信息占有"占位符"那么大的页面空间

②CompareValidator控件
CompareValidator控件是用来比较两个输入控件之间的数据一致性的,同时也可以用来校验

控件中内容的数据类型:如整形、字符串型等。ControlToCompare和ControlToValidate属性

用来设置进行比较的两个控件。


 
    CompareValidator Example
 

 


   

Password:
   

TextMode="Password">

    Confirm:
   

TextMode="Password">


   


   
   

ErrorMessage="Password Error!"
     ControlToValidate="TxtCfm"

ControlToCompare="txtPwd">


 


比较控件比较两个控件的输入是否符合程序设定,大家不要把比较仅仅理解为"相等",尽管

相等是用的最多的,其实,这里的比较包括范围很广,大家看标准代码就会明白。
  比较控件的标准代码如下:


在以上标准代码中:
  Type表示要比较的控件的数据类型;
  Operator表示比较操作(也就是刚才说的为什么比较不仅仅是"相等"的原因),这里,

比较有7种方式;
  其他属性和RequiredFieldValidator相同;
  在这里,要注意ControlToValidate和ControlToCompare的区别,如果operate为

GreateThan,那么,必须ControlToCompare大于ControlToValidate才是合法的,这下,应该

明白它们两者的意义了吧?例子程序请参考RequiredFieldValidator控件,对照标准代码自

己设计。

 

③RangeValidator控件
RangeValidator控件可以用来判断用户输入的值是否在某一特定范围内,属性MaximumValue

和MinimumValue用来设定范围的最大和最小值。


 
    RangeValidator Example
 

 


 

Age:
 
 

ControlToValidate="TxtAge"
   ErrorMessage="Age Error!" MaximumValue="99"

MinimumValue="1">


 


用MinimumValue和MaximumValue来界定控件输入值得范围,用type来定义控件输入值的类型


④RegularExpressionValidator控件
RegularExpressionValidator控件可以判断用户输入的表达式是否正确,如电话号码、邮编

、URL等,ControlToValidate属性选择需要验证的控件,ValidationExpression属性则编写

需要验证的表达式的样式,下面的例子就是一段校验邮编的代码。


 
    RegularExpressionValidator Example
 

 

 

Postal Code:
 
         ControlToValidate="TxtPostalCode" ErrorMessage="Postal Code Error!"   
       ValidationExpression="d6}">


 


在以上标准代码中,ValidationExpression是重点,现在来看看它的构造:
  在ValidationExpression中,不同的字符表示不同的含义:
  "."表示任意字符;
  "*"表示和其他表达式一起,表示容易组合;
  "[A-Z]"表示任意大写字母;
  "d"表示容易一个数字;
  注意,在以上表达式中,引号不包括在内;
  举例:
   正则表达式:".*[A-Z]"表示数字开头的任意字符组合其后接一个大写字母

⑤CustomValidator控件
CustomValidator控件用于执行用户自定义的验证,这种校验既可以是服务器端的也可以是客

户端的,下面的代码就是使用客户端验证邮编的例子。


 
    CustomValidator Example
 

 


   

Postal Code:
   
   

ControlToValidate="TextBox1" 
         ErrorMessage="CustomValidator" 

ClientValidationFunction="ClientValidate">
   


 



⑥ValidationSummary控件
这个控件会将页面中所有的校验错误输出为一个列表,列表的显示方式由DisplayMode属性设

置。


 
    ValidationSummary Example
 

 


 

Age:
 
   ControlToValidate="TxtAge" ErrorMessage="Age Error!"

Display="None">

  Postal Code:
 
  ControlToValidate="TxtPostalCode" ErrorMessage="Postal Code Error!"
Display="None">


 


 


 


     HeaderText="You must enter a value in the following

fields:">


 


综合上面的讲述来看一个控件实例

using system;
2 using system.collections.generic;
3 using system.linq;
4 using system.web;
5 using system.drawing;
6 using system.drawing.imaging;
7 using system.web.sessionstate;
8 namespace webapp
9 {
10 ///


11 /// 验证码实例 的摘要说明
12 ///

13 public class 验证码实例 : ihttphandler, irequiressessionstate //在一般处理程序

中使用session要实现该接口,在system.web.sessionstate中;
14 {
15 public void processrequest(httpcontext context)
16 {
17 context.response.contenttype = "image/jpeg"; //返回jpg类型;
18 using (bitmap bitmap = new bitmap(140, 80)) //像素大小;
19 {
20 using (graphics g = graphics.fromimage(bitmap)) //生成一个画板
21 {
22 random rand = new random();
23 int code = rand.next(1000, 999999); //制定随机函数,用于限定字随机字符串大小;
24 string strcode = code.tostring();
25 httpcontext.current.session["code"] = strcode; //在一般处理程序中使用session接

口;
26 g.clear(color.yellowgreen); //指定背景颜色;
27 g.drawstring(strcode, new font("微输雅黑", 20), brushes.white, new pointf(15,

25)); //画的图片相关参数,(字体,大小),颜色,位置;
28 bitmap.save(context.response.outputstream, imageformat.jpeg); //输出到流中并保

存为jpg格式;
29 }
30 }
31 }

相关文章

精彩推荐