六:理解控件的运行机制(例:基于WebControl命名空间的控件)
Control类的Render方法在WebControl类中被被分成三部分
1:RenderBeginTag,呈现标签的开始
2:RenderContents,呈现标签的内容
3:RenderEndTag,呈现标签的结束
一般情况下不重写RenderBeginTag和RenderEndTag
RenderBeginTag生成什么样的标签
由WebControl.TagKey和WebControl.TagName决定
默认的TagKey是Span
(假设你想直接输出文本,那么你重写的TagKey是Unknown,TagName是string)
WebControl提供一个AddAttributeToRender方法
此方法在RenderBeginTag之前执行
我们可以重写这个方法来初始化标签的样式
(注意重写此方法一定要初始化基类base.AddAttributeToRender(yourHtmlTextWriter))
看代码

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
namespace hellowControl
{
    public class HellowControl:WebControl
    {
        //重写TagKey属性,让他生成div的标签
        protected override HtmlTextWriterTag TagKey
        {
            get
            {
                return HtmlTextWriterTag.Div;
            }
        }
        //重写AddAttributesToRender方法,此方法在RenderBeginTag之前发生
        protected override void AddAttributesToRender(HtmlTextWriter writer)
        {
            base.AddAttributesToRender(writer);
            writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Src, "noimage_s.jpg");
            writer.RenderBeginTag(HtmlTextWriterTag.Img);
            writer.RenderEndTag();
        }
       
    }
}
六:理解控件的运行机制(例:基于WebControl命名空间的控件)的更多相关文章
- 七:理解控件的运行机制(例:基于CompositeControl命名空间的控件)
		组合控件与WebControl控件的事件和属性相差不大组合控件,顾名思义就是把一些控件组合起来形成一个控件这个控件将包含这些控件称为他的子控件 CompositeControl类实现了INameCon ... 
- 五:理解控件的运行机制(例:基于Control命名空间的简单控件)
		一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 Sy ... 
- 四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)
		有人说类似gridview datalist这样的控件最好不要用在高并发,IO大的网站中企业应用中为了快速开发到可以用一用因为这是一类"沉重"的组件我们姑且不谈这种看法的正确性(我 ... 
- 二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)
		url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article ... 
- 三:理解Page类的运行机制(例:在render方法中生成静态文件)
		我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和 ... 
- 一:理解ASP.NET的运行机制(例:通过HttpModule来计算页面执行时间)
		一:简要介绍一下asp.net的执行步骤 1.IIS接收到客户请求 2. IIS把请求交给aspnet_isapi.dll处理 3.(如果是第一次运行程序)装载bin目录中的dll 4.(如果是第一次 ... 
- 一张图,理解JAVA体系结构、运行机制、JVN运行机制、Java平台(初学)
		初学JAVA,学一门语言不仅仅是学其语法,逻辑思维能力,还有每一门语言都有自己独特的一方面,所以才有那么多语言要学啊 = =,所以想要真的学好语言,其编译机制,运行机制多少也要涉猎一些啊.这是初学JA ... 
- 全面理解Java异常的运行机制
		1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ... 
- 万字长文,带你彻底理解EF Core5的运行机制,让你成为团队中的EF Core专家
		在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互.这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能.EF团队甚至从Entity Framewo ... 
随机推荐
- message [Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property
			springmvc前台字符串,后台Date类型字段.时间强转失败 数值:18年12月31日 15:43:21 解决方法,给时间字段加注释 @DateTimeFormat(pattern = " ... 
- PHP开发——分支结构
			If if if···else··· if···else··· switch 
- hugepage优势
			hugepage的优势与使用 +2投票 优势 通过使用hugepage分配可以提高性能,因为需要更少的页,因此需要更少Translation Lookaside Buffers (TLB,高速传送 ... 
- SSD性能测试第一神器:FIO
			SSD性能测试第一神器:FIO 2017年8月12日 syswift 0 对于SSD性能测试来说,最好的工具莫过于FIO了. 上面这个可爱的小伙子名字叫Jens Axboe,他是丹麦哥本哈根大学计算 ... 
- struts2遇到的一个问题。
			2018-09-12 好几年没配过struts2了,今天想用最新版的配一下,一直不成功,后来才知道,一堆红色输出里面有这样一句 ERROR StatusLogger No log4j2 configu ... 
- 重写comparater比较器
			TreeSet 能自动对对象进行排序,但是一般需要在类中重写比较方法 比较器介绍 在类中实现Comparable接口,并重写compareTo方法 排序对象类 package typing.overr ... 
- Chrome浏览器用AdBlockPlus拦截百度广告
			一:安装AdBlockPlus插件,这个貌似要FQ安装,不知道可不可以本地安装: 二:在右侧的扩展那里找到ABP扩展,然后设置-高级-我的过滤列表栏-开始创建我的过滤列表: 三:在列表栏里添加 bai ... 
- Nginx unit 源码安装初体验
			Nginx unit 源码安装初体验 上次介绍了从yum的安装方法(https://www.cnblogs.com/wang-li/p/9684040.html),这次将介绍源码安装,目前最新版为1. ... 
- Java中资料的上传与下载
			1.导架包 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons ... 
- DSP builder安装指南(以9.1为例) 转自http://www.cnblogs.com/sleepy/archive/2011/06/28/2092362.html
			DSP Builder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期.已有的MATLAB函数和Simulink模块可以和Altera DSP Builder模块以及 ... 
