zoukankan      html  css  js  c++  java
  • 六:理解控件的运行机制(例:基于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();
            }
           
        }
    }
     
  • 相关阅读:
    直击美国大选,特朗普担心黑客?郭盛华这样回应
    30岁郭盛华近照曝光,容貌大变判若两人,经历了什么?
    美选举日,科技股飙升,原因是什么?
    索尼收购了TikTok?事实真是这样吗?
    腾讯手游《王者荣耀》创下每日1亿用户记录
    东方联盟创始人郭盛华十大励志名言
    抛弃谷歌!苹果研发自己的搜索引擎技术
    vivo 悟空活动中台
    Android 加载图片占用内存分析
    Linux Page Cache调优在Kafka中的应用
  • 原文地址:https://www.cnblogs.com/liulun/p/1378943.html
Copyright © 2011-2022 走看看