C#中Template模板方法模式如何实现ASP.NET自定义控件和密码强度检测功能
小编给大家分享一下C#中Template模板方法模式如何实现ASP.NET自定义控件和密码强度检测功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联是一家集网站建设,宜春企业网站建设,宜春品牌网站建设,网站定制,宜春网站建设报价,网络营销,网络优化,宜春网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
一、理论定义
模板方法模式 预先定义实现了一些基本属性和方法,需要重新计算的部分,通过子类去重写 或 增加新方法来实现。
二、应用举例
需求描述: ASP.NET自定义控件有很多通用的属性和事件, 通过继承System.Web.UI.WebControls.WebControl类,可以实现自定义控件。
WebControl拥有控件基本的方法和事件,让我们定义控件时,可以站在巨人的肩上,
避免重复造轮子。WebControl就相当于一个模板,改变模板的属性,或者往模板里面加东西,显示的内容就不一样。
密码强度检测的例子,是通过修改Strength 属性,来控制密码的强度。
三、具体编码
1.一个 密码强度的枚举
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Com.Design.Gof.Template { ////// 密码强度枚举属性 /// public enum StrengthOption { VeryLow=1,//很差 Normer=2,//一般 Good=3,//良好 Perfect=4//非常棒,非常强,极佳 } }
2.密码强度 自定义控件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; [assembly: TagPrefix("Com.Design.Gof.Template", "asp")] namespace Com.Design.Gof.Template { [DefaultProperty("Text")] [ToolboxData("<{0}:PasswdStrength runat=server>")] public class PasswdStrength : WebControl { ////// 当前密码强度 /// [Bindable(true)] [Category("Appearance")] [DefaultValue(StrengthOption.VeryLow)] [Localizable(true)] public StrengthOption Strength { get { object bag = ViewState["StrengthOption"]; if (bag == null) { return StrengthOption.VeryLow; } return (StrengthOption)ViewState["StrengthOption"]; } set { ViewState["StrengthOption"] = value; } } protected override void RenderContents(HtmlTextWriter output) { string css = ""; switch (Strength) { case StrengthOption.VeryLow: css = "bg1"; break; case StrengthOption.Normer: css = "bg2"; break; case StrengthOption.Good: css = "bg3"; break; case StrengthOption.Perfect: css = "bg4"; break; default: break; } output.Write("
3.ASPX页面调用控件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Template_PasswdStrength.aspx.cs" Inherits="Com.Design.Gof.Test.Web.Template_PasswdStrength" %> <%@ Register Assembly="Com.Design.Gof" Namespace="Com.Design.Gof.Template" TagPrefix="asp" %>
4.运行结果
以上是“C#中Template模板方法模式如何实现ASP.NET自定义控件和密码强度检测功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
本文题目:C#中Template模板方法模式如何实现ASP.NET自定义控件和密码强度检测功能
标题URL:http://scfushun.com/article/jocjjg.html