自定义控件——呈现

解释一下WebControl基类中,以Render开头的呈现方法:

1.RenderControl(HtmlTextWriter writer)方法

目的:将服务器控件的内容输出到所提供的 HtmlTextWriter 对象中;如果已启用跟踪功能,则存储有关控件的跟踪信息。http://technet.microsoft.com/zh-cn/htwek607(v=vs.89)

应用:这是一个控件方法,当开发继承现有控件时默认调用的方法;或者说在控件加载过程中,递归加载的方法(不懂连接http://developer.51cto.com/art/200906/132645.htm)。

此方法涉及到控件存储信息跟踪,重写比较复杂。

2.Render(HtmlTextWriter writer)方法

目的:在客户端上显示关联的控件及其所有子控件。 此 API 已过时。(介绍 http://technet.microsoft.com/zh-cn/subscriptions/f1d0ef7t

应用:此方法主要由自定义适配器的开发人员使用。对继承者的说明,此方法通常在自定义适配器中重写,并由 .NET Framework 调用。

3.RenderBeginTag(HtmlTextWriter writer)方法

目的:将与指定的 HtmlTextWriterTag 枚举值关联的标记元素的开始标记写入到输出流。(来自 http://technet.microsoft.com/zh-cn/magazine/3e111b82.aspx#MtViewDropDownText

应用:若要使用 RenderBeginTag 方法来生成标记元素,请根据需要先调用 AddAttribute 和 AddStyleAttribute 方法,以指定要在元素的开始标记中显示的任何元素特性或样式特性。 生成内部标记之后,请调用RenderEndTag 方法以生成结束标记。

// Control the encoding of attributes. 
// Simple known values do not need encoding.
writer.AddAttribute(HtmlTextWriterAttribute.Alt, "Encoding, \"Required\"", true);
writer.AddAttribute("myattribute", "No "encoding " required", false);
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
writer.WriteLine();

 

 4.RenderContents(HtmlTextWriter writer)方法

目的:将控件的内容呈现到指定的编写器中。 此方法主要由控件开发人员使用。(来自 http://msdn.microsoft.com/zh-cn/sb0s70ds

应用:重写 RenderContents 方法以呈现开始和结束标记之间的控件内容。 此方法的默认实现会呈现所有子控件。

如果控件具有子控件,则必须在要将子控件呈现到文本编写器的位置调用基 RenderContents 方法或调用 RenderChildren

5.RenderEndTag(HtmlTextWriter writer)

目的:在调用 RenderBeginTag 重载之后以及在元素的开始标记和结束标记(内部标记)之间的所有内容均已呈现后,调用 RenderEndTag 方法。(来自 http://technet.microsoft.com/zh-cn/system.web.ui.htmltextwriter.renderendtag(en-us,VS.85).aspx

有内容接着续……

posted @ 2012-08-02 15:10  多睡发芽  阅读(158)  评论(0)    收藏  举报