创建自定义验证控件(1)
寫一個(gè)創(chuàng)建自定義的控件的文章。幫大家了解如何寫自定義驗(yàn)證控件。
首先寫個(gè)簡(jiǎn)單的,長(zhǎng)度驗(yàn)證控件,大家在寫用戶注冊(cè)的時(shí)候,很多時(shí)候需要驗(yàn)證用戶密碼長(zhǎng)度在多少到多少之間。
我們通過從BaseValidator類派生一個(gè)新的控件來創(chuàng)建新的驗(yàn)證控件。如名字所提示,BaseValidator類是所有驗(yàn)證控件的基類,BaseValidator類是一個(gè)抽象(abstract)類,他要求子類必須實(shí)現(xiàn)一個(gè)方法:
EvaluateIsValid()---------當(dāng)被檢驗(yàn)表單字段通過驗(yàn)證時(shí)返回True。
BaseValidator類也包含一些其他的方法,可以重寫(override)或作別的用途。其中最有用的是:
GetControlValidationValue()---------用于獲取被驗(yàn)證控件的值
創(chuàng)建自定義控件時(shí)要重寫EvaluateIsValid()方法,并在EvaluateIsValid()方法中調(diào)用GetControlValidationValue()來獲取被驗(yàn)證的表單字段的值
下面是我寫的一個(gè)小DEMO。
判斷長(zhǎng)度驗(yàn)證控件類
Code?1using?System;
?2using?System.Web.UI;
?3using?System.Web.UI.WebControls;
?4
?5/**////?<summary>
?6///ValidatorControls?的摘要說明
?7///用于驗(yàn)證最大長(zhǎng)度
?8///by?mFrog
?9///2008,11,13
10///?</summary>
11
12namespace?myControls
13{
14????public?class?LengthValidator?:?BaseValidator//繼承驗(yàn)證控件類
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
?
頁(yè)面代碼
?
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>最大長(zhǎng)度驗(yàn)證控件</title>
?8</head>
?9<body>
10????<form?id="form1"?runat="server">
11????<div>
12????????<asp:Label?ID="lblValidator"?runat="server"?Text="驗(yàn)證"?/>
13????????<br?/>
14????????<asp:TextBox?ID="txtComments"?runat="server"?TextMode="MultiLine"?Columns="50"?Rows="5"?/>
15????????<mFrog:LengthValidator?ID="mlvComments"?ControlToValidate="txtComments"?Text="長(zhǎng)度必須在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
?
效果截圖
?
就到這,下篇我會(huì)寫比較復(fù)雜的驗(yàn)證控件,來和大家一起學(xué)習(xí)
?
轉(zhuǎn)載于:https://www.cnblogs.com/mFrog/archive/2008/11/13/1333151.html
總結(jié)
以上是生活随笔為你收集整理的创建自定义验证控件(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海贼王燃烧意志抽卡技巧
- 下一篇: 《编程之美》读书笔记(十二):“只考加法