【转贴】Render RenderContents RenderControl 三个方法的区别

【转贴】Render RenderContents RenderControl 三个方法的区别每个页面都有一个控件树,代表本页面所拥有的所有子控件,页面控件就是控件树的根,为了生成控件树,页面将建立一个HtmlTextWriter类的实例,在这个实例中封装了相应流,接着页面会把HtmlText

大家好,又见面了,我是你们的朋友全栈君。

每个页面都有一个控件树,代表本页面所拥有的所有子控件,页面控件就是控件树的根,为了生成控件树,页面将建立一个HtmlTextWriter类的实例,在这个实例中封装了相应流,接着页面会把HtmlTextWriter对象传递给RenderControl,RenderControl会检查控件的Visible属性是否为真,如果是真,RenderControl会调用Render方法,而Render方法会去调用RenderContents,RenderContents方法负责将控件的内容呈现到指定的编写器中,如果控件有子控件的话,Render方法又会把HtmlTextWriter传递给RenderChildren方法,RenderChildren方法负责生成控件的子控件。

控件生命周期的Render阶段,主要将控件标记和字符文本输出到服务器控件输出流中。在这个阶段可以直接写HTML标记,也可以调用每个控件都有的RenderControl方法到输出流。在WebControl基类中,以Render开头的呈现方法有如下几个:

Ø RenderControl(HtmlTextWriter writer)

Ø Render(HtmlTextWriter writer)

Ø RenderBeginTag(HtmlTextWriter writer)

Ø RenderContents(HtmlTextWriter output)

Ø RenderEndTag(HtmlTextWriter writer)

以上几个Render方法并不是毫无联系的,它们的执行顺序是从上往下,并且有嵌套的调用关系。其中在RenderControl方法内部会调用Render方法,在Render方法内部会依次调用RenderBeginTag, RenderContents和RenderEndTag。

其中RenderControl和Render是Control基类中的方法,因为WebControl本身也是继承Control的。一般在开发基本控件时,我们只需重写RenderContents方法即可,在此方法中可以把控件HTML文本标记和其他内容写到输出流中。

另外,还有两个可以重载的方法 RenderBeginTag和RenderEndTag。这两个方法执行时刻点是分别在Render控件内容之前和之后。可以重写这两个方法自己定义控件的起始和结束标记。默认情况下控件是以<Span></Span>作为起始和结束标记的,

出处:http://blog.csdn.net/ChengKing/archive/2009/01/01/3678388.aspx

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154896.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • navicat15激活码最新【在线注册码/序列号/破解码】

    navicat15激活码最新【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • java softreference_Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference…[通俗易懂]

    java softreference_Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference…[通俗易懂]Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference1Java引用介绍Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:强引用>软引用>弱引用>虚引用⑴强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃…

  • 【面试】阿里巴巴Java经典面试题整理及答案详解

    【面试】阿里巴巴Java经典面试题整理及答案详解Java开发工程师-面试题目集锦Java的数据结构有哪些?线性表,链表,栈,队列,图,树什么是OOP?面向对象编程面向对象编程的原则有哪些?单一职责原则:一个类中应该是一组相关性很高的函数、数据的封装! 开闭原则;对扩展开放,对修改关闭,即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。只…

  • 散列/散列函数「建议收藏」

    散列/散列函数「建议收藏」散列是一种用于以常数平均时间执行插入、删除和查找的技术。每个关键字被映射到从0-TableSize-1这个范围中的某个数,并且被放到适当的单元中。这种映射就叫做散列函数我认为,先用散列函数将我们所要进行操作的集合整合成散列表,是对之后的操作的一种便利。放到实际中去,我们要进行操作的集合不仅仅只是数字,例如图书馆中的书籍分类等等。而且就算是一组不连续差距较大的数字,要执行后序的插入删除和查找都是很不方

  • ffmpeg安装_vmware虚拟化集群教程

    ffmpeg安装_vmware虚拟化集群教程搭建ffmeg环境描述部署资源安装包安装步骤1.yasm安装2.ffmpeg安装后续描述1.结合网上文档以及本地虚拟机环境配置一致的测试服务器进行环境搭建,在测试的时候,强烈建议环境适用的操作系统内核与本文档保持一致,因为ffmpeg会存在内核要求,可能会由于兼容性问题导致安装不成功2.服务器操作系统以及内核为2.6.32-431.el6.x86_642013x86_64x86_64x86_64GNU/Linux,这是属于红帽的系统,系统一些必须的环境还是需要提前配置好,如JDK\MAVEN

  • 如何修改系统内核版本名称_linux系统查看内核

    如何修改系统内核版本名称_linux系统查看内核更改系统内核版本系统中安装了多个内核版本,一般重启会根据配置文件的启动顺序,选择一个,怎样选择自己想要的版本?直接修改/etc/grub2.cfg里的序号即可找到对应的menuentry的序号,从0开始编号 最后重启一下即可查看内核版本:uname-a…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号