asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

浅谈ASP.NET中render方法


发布日期:2020年09月10日
 
浅谈ASP.NET中render方法
中所有的控件都是从SystemWebUIControl类在control类中定义了三个与呈现有关的方法分别是Render方法RenderChildren方法和RenderControl方法其中RenderControl方法是public的方法先看看这三个方法的实现

RenderControl方法用于供外部类进行调用以生成控件如父控件调用子控件的Rendercontrol方法在RenderControl方法只是作了是否显示该控件的判断如果显示则调用控件的被保护方法Render

Render方法是呈现控件的核心方法在现实性自定义控件中我们一般都是通过重写Render方法来呈现控件的如果控件是一个容器控件就要重写RenderChildren方法来呈现子控件

所有的服务端控件都是从SystemWebUIWebControl中派生而WebControl又从Control中派生所以WebControl具有上述的三个方法但是又增加了几个方法它把Render方法又细分成三个方法RenderBgeginTagRenderContentsRenderEndTagRender的实现代码如下

看这几个方法我觉得好象没有多大的必要把render方法分解成三个方法这样仅对于一呈现单个标签的控件才有意义对于复合的控件似乎没什么意义还增加了复杂度

总结

如果从Control中派生则应重载Render()方法呈现控件如果控件是一个容器控件则应在render方法中调用基类的baseRenderChildren()方法呈现子控件

如果从Webcontrol类中派生分两种情况一种是利用TagKey属性生成输出的html标签这时应重载RenderContents()方法来呈现控件第二种是不想呈现默认的的用TagKey生成的html标签这时应重载Render()方法来呈现控件如下代码所示

如果从Webcontrol类中派生并且该控件是一个容器控件则应在RenderContents中调用baseRender()方法以呈现子控件

其他的两种方法我们会在后续文章中介绍到希望对你有帮助

上一篇:ASP.NET2.0导航功能之配置会员和角色

下一篇:ASP.NET中使用表别名的多表查询