写一个创建自定义的控件的文章。帮大家了解如何写自定义验证控件。
\n
首先写个简单的,长度验证控件,大家在写用户注册的时候,很多时候需要验证用户密码长度在多少到多少之间。
\n
我们通过从BaseValidator类派生一个新的控件来创建新的验证控件。如名字所提示,BaseValidator类是所有验证控件的基类,BaseValidator类是一个抽象(abstract)类,他要求子类必须实现一个方法:
\n
EvaluateIsValid()———当被检验表单字段通过验证时返回True。
\n
BaseValidator类也包含一些其他的方法,可以重写(override)或作别的用途。其中最有用的是:
\n
GetControlValidationValue()———用于获取被验证控件的值
\n
创建自定义控件时要重写EvaluateIsValid()方法,并在EvaluateIsValid()方法中调用GetControlValidationValue()来获取被验证的表单字段的值
\n
下面是我写的一个小DEMO。
\n
判断长度验证控件类
\n
Code
1using System;
2using System.Web.UI;
3using System.Web.UI.WebControls;
4
5/**//// <summary>
6///ValidatorControls 的摘要说明
7///用于验证最大长度
8///by mFrog
9///2008,11,13
10/// </summary>
11
12namespace myControls
13{
14 public class LengthValidator : BaseValidator//继承验证控件类
15 {
16 int _maxnumlength = 0;
17 int _minnumlength = 0;
18 public int Maxnumlength
19 {
20 get { return _maxnumlength; }
21 set { _maxnumlength = value; }
22 }
23
24 public int Minnumlength
25 {
26 get { return _minnumlength; }
27 set { _minnumlength = value; }
28 }
29 //重写EvaluateIsValid()方法
30 protected override bool EvaluateIsValid()
31 {
32 string value = this.GetControlValidationValue(this.ControlToValidate);
33 if (value.Length > _maxnumlength || value.Length < _minnumlength)
34 {
35 return false;
36 }
37 else
38 {
39 return true;
40 }
41 }
42 }
43}
44
\n
页面代码
\n
\n
Code
1<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>
2
3<%@ Register TagPrefix=”mFrog” Namespace=”myControls” %>
4<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
5<html xmlns=”http://www.w3.org/1999/xhtml”>
6<head runat=”server”>
7 <title>最大长度验证控件 http://www.dwww.cn</title>
8</head>
9<body>
10 <form id=”form1″ runat=”server”>
11 <div>
12 <asp:Label ID=”lblValidator” runat=”server” Text=”验证” />
13 <br />
14 <asp:TextBox ID=”txtComments” runat=”server” TextMode=”MultiLine” Columns=”50″ Rows=”5″ />
15 <mFrog:LengthValidator ID=”mlvComments” ControlToValidate=”txtComments” Text=”长度必须在6到20之间”
16 Maxnumlength=”20″ Minnumlength=”6″ runat=”server” />
17 <br />
18 <br />
19 <asp:Button ID=”btnSubmit” runat=”server” Text=”提交” />
20 </div>
21 </form>
22</body>
23</html>
24
\n
效果截图
\n
就到这,下篇我会写比较复杂的验证控件,来和大家一起学习
来源:http://www.cnblogs.com/mFrog/