转载 RenderRenderContentsRenderControl三个方法的区别 yii render方法

原文地址:RenderRenderContentsRenderControl三个方法的区别作者:风雨中前行

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

RenderControl(HtmlTextWriterwriter)

Render(HtmlTextWriterwriter)

RenderBeginTag(HtmlTextWriterwriter)

RenderContents(HtmlTextWriteroutput)

RenderEndTag(HtmlTextWriterwriter)

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

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

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


下面以一个例子来演示使用上面几个方法,新建一个RenderOrderControl.cs Web控件类, 重载以下几个方法, 并填充相应语句, 修改后代码如下所示:

Code
///<summary>
///Render方法执行顺序:3
///</summary>
publicoverridevoidRenderBeginTag(HtmlTextWriterwriter)
{
//base.RenderBeginTag(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Id,this.ID);
[转载]RenderRenderContentsRenderControl三个方法的区别 yii render方法
writer.RenderBeginTag(HtmlTextWriterTag.Div);
}

///<summary>
///Render方法执行顺序:4
///</summary>
protectedoverridevoidRenderContents(HtmlTextWriteroutput)
{
output.Write(Text);
}

///& lt;summary>
///Render方法执行顺序:5
///</summary>
publicoverridevoidRenderEndTag(HtmlTextWriterwriter)
{
//base.RenderEndTag(writer);
writer.RenderEndTag();
}


上面代码仅Render出控件Text属性文本. 另外,重写了控件起始和结尾标签

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/230957.html

更多阅读

两厢车和三厢车的区别 掀背车 三厢车

两厢车和三厢车的区别——简介两厢车和三厢车的区别如下:两厢车和三厢车的区别——方法/步骤两厢车和三厢车的区别 1、两厢车车尾没有后备箱。例如,赛欧两厢、高尔夫、迈腾等。

三个白手起家的企业家的创业故事 挣钱好项目

纵观我国的亿万富翁,很多都是从白手起家开始的,有的从摆地摊开始、有的从摆水果摊开始,有的甚至曾两度白手起家,本文就总结了几个白手起家的亿万富翁的创业故事,希望对大家能有所启发和帮助!一、新大陆集团总裁胡刚两度白手起家成亿万富

中国境外三个不为人知的汉人政权 不为人知的中国大都会

彭家声说中国在境外有三个不为人知的汉人政权,也许会有人说那是天方夜谭,白日说梦话。然而,这确实是鲜为人知的真实。缅甸东北部有三个由汉族人建立的国中之国,其领导集体都是汉人。这三个汉人政权均位于缅甸东北部的禅邦,面积5万多平方

三个感人的亲情故事,怎不叫人泪奔!!! 感人的亲情故事

  三个感人的亲情故事,怎不叫人泪奔!!!让我抱一抱你,我的妈妈——感动了上亿人!他感觉和母亲很远,也许真是大了,小的时候天天围绕在母亲的身边,如今娶妻生子,加上工作忙,他很少有时间回家。但这次,他却必须回家了。母亲病了,住院了,从医生的神态

声明:《转载 RenderRenderContentsRenderControl三个方法的区别 yii render方法》为网友榮光終入土分享!如侵犯到您的合法权益请联系我们删除