zoukankan      html  css  js  c++  java
  • 自定义控件LengthValidator

    1.创建自定义验证控件:新建LengthValidator类并继承BaseValidator

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI.WebControls;
    
    namespace MyControl
    {
        public class lengthValidator : BaseValidator
        {
            public int MaximumLength
            {
                get;
                set;
            }
           
            protected override bool EvaluateIsValid()
            {
                string value = this.GetControlValidationValue(this.ControlToValidate);
                if (value.Length > MaximumLength)
                    return false;
                else
                    return true;
            }
        }
    }
    View Code

    BaseValidator类有两个重要的方法:

    1)GetControlValidationValue方法获取被验证控件的值;

    2)EvaluateIsValid方法检验控件的值是否有效,有效时返回true,无效返回false。

    2.新建LengthValidatorTest页面用LengthValidator控件验证长度

    LengthValidator创建后编译一下工具箱最上面即出现LengthValidator,只要把控件拖到要使用的页面即可

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LengthValidatorTest.aspx.cs" Inherits="WebApplication1.LengthValidatorTest" %>
    
    <%@ Register Assembly="WebApplication1" Namespace="MyControl" TagPrefix="cc1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <cc1:lengthValidator ID="LengthValidator1" runat="server" ControlToValidate ="TextBox1" Display ="Dynamic"  MaximumLength="10" Text ="长度不能大于10个字符"></cc1:lengthValidator>
            <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click" />
        </div>
        </form>
    </body>
    </html>
    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
        public partial class LengthValidatorTest : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                if (Page.IsValid)
                { 
                    //....
                }
            }
        }
    }
    View Code

    注:自定义验证控件有错误时并不会阻止页面提交,所以提交数据必须用Page.IsValid检查一下表单是否都通过验证。

  • 相关阅读:
    ASP.NET控件开发学习笔记第5回 HtmlTextWriter的相关枚举
    ASP.NET控件开发学习笔记第4回 为控件添加属性
    ASP.NET控件开发学习笔记第6回 ViewState
    构建可反转排序的泛型字典类(9完)完善
    ASP.NET控件开发学习笔记第一回 HelloWorld
    构建可反转排序的泛型字典类(7)实现IDictionary接口
    C#泛型专题系列文章目录导航
    构建可反转排序的泛型字典类(8)实现IDictionary接口
    ASP.NET控件开发学习笔记第二回 又见Hello World
    ASP.NET控件开发学习笔记第3回 自制导航控件
  • 原文地址:https://www.cnblogs.com/lidaying5/p/10933451.html
Copyright © 2011-2022 走看看