• 自定义创建web验证控件


    自定义创建web验证控件

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

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

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

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

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

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

     

    下面是类的内容:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    //在类中添加

    using System.Web;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    namespace WebApp_Model

    {

        public class StudentMinLengthValidate : BaseValidator

        {

            int _minLength = 0;

            public int MinLength

            {

                get { return _minLength; }

                set { _minLength = value; }

            }

            protected override bool EvaluateIsValid()

            {

                string value = this.GetControlValidationValue(this.ControlToValidate);

                if (value.Length < _minLength)

                    return false;

                else

                    return true;

            }

        }

    }

    这样验证的类就OK了;

    接下来就是怎么用该类了:

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

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

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

    2..aspx页面上放一个textbox控件

      <asp:TextBox ID="textbox1" runat="server"></asp:TextBox>

    3.放入该验证控件

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

    3.再加入按钮进行检验一下

    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

    后台代码:

    protected void Button1_Click(object sender, EventArgs e)

            {

                if (Page.IsValid)

                {

                    Response.Write("true");

                }

            }

    演示效果:

    输入123

    输入123超过十位

  • 相关阅读:
    斐波那契数列实现方式,以及递归和非递归时间对比
    月份与季节
    时针与分针夹角
    二叉树非递归遍历 以及二叉树节点删除思路
    向左向右 —折半查找(二分法)
    c语言之字符串及字符集简介
    c语言之排序
    C语言代码页 预处理 和宏 结构体 共用体 枚举 指针简绍
    C语言之函数调用约定,递归,数组简介
    C语言之条件判断
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/1750022.html
Copyright © 2020-2023  润新知