web前端

位置:IT落伍者 >> web前端 >> 浏览文章

自定义创建web验证控件


发布日期:2018年04月04日
 
自定义创建web验证控件

做开发的都知道在VS里提供了很多的验证控件比如RequiredFieldValidator RangeValidatorRegularExpressionValidator等等他们都是继承于BaseValidator这个基类BaseValidator类是一个抽象(abstract)类它要求子类必须实现一个方法EvaluateIsValid——当被检验的表单字段通过验证时返回True

BaseValidator类也包含一些其他的方法可以重写(override)或做别的用途这些方法中最有用的是下面这个

GetControlValidationValue——用于获取被验证的控件的值

创建自定义验证控件时要重写EvaluateIsValid()方法并在EvaluateIsValid()方法中调用GetControlValidationValue来获得被验证的表单字段的值

接下来就来创建一个验证最少字符个数

首先先创建一个类放在项目的App_Code文件夹里所有加入到这个文件夹的类都会自动被ASPNET Framework编译

下面是类的内容

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

//在类中添加

using SystemWeb;

using SystemWebUI;

using SystemWebUIWebControls;

namespace WebApp_Model

{

public class StudentMinLengthValidate : BaseValidator

{

int _minLength = ;

public int MinLength

{

get { return _minLength; }

set { _minLength = value; }

}

protected override bool EvaluateIsValid()

{

string value = thisGetControlValidationValue(thisControlToValidate);

if (valueLength < _minLength)

return false;

else

return true;

}

}

}

这样验证的类就OK了

接下来就是怎么用该类了

其实用该类的方式跟VS里的验证控件是一样的因为都是继承于BaseValidate

首先先注册一下我们刚才建的类

<%@ Register TagPrefix=custom Namespace=WebApp_Model %>

aspx页面上放一个textbox控件

<asp:TextBox ID=textbox runat=server></asp:TextBox>

放入该验证控件

<custom:StudentMinLengthValidate id=valCustom Runat=server MinLength= ControlToValidate=textbox ErrorMessage=字符太少 />

再加入按钮进行检验一下

<asp:Button ID=Button runat=server onclick=Button_Click Text=Button />

后台代码

protected void Button_Click(object sender EventArgs e)

{

if (PageIsValid)

{

ResponseWrite(true);

}

}

演示效果

输入

输入…超过十位

上一篇:网购系统——用户界面层公共函数集WebUtility

下一篇:WebService中使用自定义类的解决方法