转:Render RenderContents RenderControl 三个方法的区别
来源:互联网 发布:移动网络怎么转换器 编辑:程序博客网 时间:2024/05/19 03:47
每个页面都有一个控件树,代表本页面所拥有的所有子控件,页面控件就是控件树的根,为了生成控件树,页面将建立一个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
- Render RenderContents RenderControl 三个方法的区别
- 转:Render RenderContents RenderControl 三个方法的区别
- RenderContents和Render区别
- CreateChildControls、EnsureChildControls、RenderControl、Render、RenderChildren
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- app.render和res.render的区别
- Django的render方法
- 使用控件的RenderControl()方法导出Excel
- 使用控件的RenderControl()方法导出Excel
- 使用控件的RenderControl()方法导出Excel
- OnPreRender与Render的区别
- render 与 redirect_to 的区别
- render与redirect_to的区别
- shade 和 render的区别
- render与render_to_response的区别
- Jfinal的render 系列方法
- 利用hostent Structure打印ip地址
- windows安装和配置阿帕奇+PHP服务器
- struct tcphdr
- 环境变量路径中有空格该怎么办
- 更改openDocument默认的URL路径
- 转:Render RenderContents RenderControl 三个方法的区别
- iOS7新特性-NSURLSession详解
- QNetworkProxy Class Reference
- Linux常用命令
- 内存管理内幕--动态分配的选择、折衷和实现
- 使用JavaServiceWrapper把Java程序作为Windows系统服务 from http://www.233.com
- TCP协议详解
- Tornado+nginx+supervisor 在生产环境上部署
- 网页设计-从零开始 百度文库