ASP.NET2.0服务器控件之Render方法
2007-04-28 16:46
246 查看
一直对页面空间的呈现感到有些模糊,今天趁没事研究了一下!在Control类中包括三个用于实现控件呈
现的方法:Render、RenderChildren和RenderControl。它们都使用HtmlTextWriter的实例作为参数,它
们允许为一个HtmlTextWriter对象提供服务器控件的内容,并将其内容封装至HTTP输出流中输出到客户端
显示。
//RenderCotrol方法基本实现
public void RenderControl(HtmlTextWriter output)
...{
if(Visible)
...{
Render(output);
}
}
//Render方法基本实现
protected virtual void Render(HtmlTextWriter output)
...{
RenderChildren(output);
}
//RenderChildren方法基本实现
protected virtual void RenderChildren(HtmlTextWriter output)
...{
foreach(Control c in Controls)
...{
c.RenderControl(output);
}
}
根据页面的加载过程我们可以分析出,这三个函数之间有递归的关系,大概的过程就是:
(1)页面框架建立一个HtmlTextWriter类的实例;
(2)页面框架将这个实例对象传递给RenderControl方法;
(3)RenderControl方法检查控件的可视属性Visible是否为true。如果为true,RenderControl方法将调用Render方法;如果为false,则不呈现该控件和其子控件;
(4)Render方法执行默认实现,调用RenderChildren方法;
(5)RenderChildren方法按照默认实现中的设定调用每个子控件的RenderControl方法;
现的方法:Render、RenderChildren和RenderControl。它们都使用HtmlTextWriter的实例作为参数,它
们允许为一个HtmlTextWriter对象提供服务器控件的内容,并将其内容封装至HTTP输出流中输出到客户端
显示。
//RenderCotrol方法基本实现
public void RenderControl(HtmlTextWriter output)
...{
if(Visible)
...{
Render(output);
}
}
//Render方法基本实现
protected virtual void Render(HtmlTextWriter output)
...{
RenderChildren(output);
}
//RenderChildren方法基本实现
protected virtual void RenderChildren(HtmlTextWriter output)
...{
foreach(Control c in Controls)
...{
c.RenderControl(output);
}
}
根据页面的加载过程我们可以分析出,这三个函数之间有递归的关系,大概的过程就是:
(1)页面框架建立一个HtmlTextWriter类的实例;
(2)页面框架将这个实例对象传递给RenderControl方法;
(3)RenderControl方法检查控件的可视属性Visible是否为true。如果为true,RenderControl方法将调用Render方法;如果为false,则不呈现该控件和其子控件;
(4)Render方法执行默认实现,调用RenderChildren方法;
(5)RenderChildren方法按照默认实现中的设定调用每个子控件的RenderControl方法;
相关文章推荐
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法 (作者: 金属边缘 出处: 天极开发 )
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- 重写RadioButtonList服务器控件的RenderItem方法,隐藏radio元素
- 在Master母版页中通过FindControl()方法获取服务器控件
- Page.RegisterStartupScript 方法 [C#]请参见允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块。
- ASP.NET2.0服务器控件之自定义状态管理
- ASP.NET2.0服务器控件之类型化样式属性
- ASP.NET2.0服务器控件之自定义状态管理
- asp.net2.0服务器控件捕获回传事件IPostBackEventHandler
- Jquery 获得服务器控件值的方法小结
- ASP.NET2.0服务器控件之创建复杂属性
- 【问题】HyperLink控件用Eval()方法绑定NavigateUrl时出现"服务器标记的格式不正确"
- asp.net2.0自定义服务器控件开发(一)
- ASP.NET2.0服务器控件之自定义状态管理