正版软件交易论坛

首页 » 资源专区 » 经典实例、教程! » asp.net控件开发基础(2)
taomaintao - 2008-6-2 11:34:00
上一篇:http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html
或许大家还对为何要重写Render方法存有疑惑,希望大家看看我举的例子,能够明白Render方法和其他两个方法的作用,然后真正明白为何一般情况下只须重写Render方法

我们知道我们每次编写控件时,都需要重写Render方法,我们发现在Control类中很多方法可以重写,但我们没有去重写他们,我们需要遵循一个原则,在需要重载的时候再去重写他们

我们还是先来看看与Render方法相关的两个方法
//RenderControl方法的基本实现

public
void RenderControl(HtmlTextWriter writer)
{
if(Visible)
{
Render(writer);
}

}

//Render方法基本实现

protected
virtual
void Render(HtmlTextWriter writer)
{
RenderChildren(writer);
}

//RenderChildren方式基本实现

protected
virtual
void RenderChildren(HtmlTextWriter writer)
{
foreach (Control c in Controls)
{
c.RenderControl(writer);
}

}



相信看过"ASP.NET服务器控件开发技术与实例"这本书的人,肯定看过上面的一段代码.

假设你不理解上面的流程(我也不一定理解,希望我的思路对你有帮助),我认为有一种很好的方式来理解上面的流程,跟大家分享一下.

现在抛开上面的代码,我们来建一个简单的页面,随意的拖几个控件到界面上,注意最后一个三panel控件,如下图

原文地址:http://www.cnblogs.com/Clingingboy/archive/2006/08/01/465397.html
1
查看完整版本: asp.net控件开发基础(2)