重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“ASP.NET中的三个基类是什么”,在日常操作中,相信很多人在ASP.NET中的三个基类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET中的三个基类是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
10年积累的成都网站制作、成都网站设计、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有梓潼免费网站建设让你可以放心的选择与我们合作。
一般我们撰写ASP.NET控件都是继承Framework 已有三个ASP.NET基类,Control,WebControl,CompositeControl,它们之间的关系大家都很清楚。
下面我就各个ASP.NET基类的呈现方法作一些简单的说明:
Control,主要有以下4个方法用于呈现:
protected internal virtual void Render (HtmlTextWriter writer) { this.RenderChildren(); } protected internal virtual void RenderChildren(HtmlTextWriter writer) { //呈现子控件 } public virtual void RenderControl (HtmlTextWriter writer) { //该方法为入口方法 this.RenderControl(writer,this.xxxAdapter); } protected void RenderControl(HtmlTextWriter writer, ControlAdapter adapter) { if (adapter != null) { //调用相关的适配器方法 } else { this.Render(writer); } } 整个呈现顺序就是: 1.RenderControl(HtmlTextWriter writer) 2.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 3.Render(HtmlTextWriter writer) 4.RenderChildren(HtmlTextWriter writer)
概念上理解就是:
1.控件开始呈现
2.控件是否有相关的呈现适配器,有的话就适配器调用适配器的相关呈现方法
3.呈现子控件
4.完成控件呈现
题外话:关于控件适配器我基本上没用过,不过可以学习这个手法,怎么样在一个类中添加新功能而不影响原代码,既OO的基本设计原则之一 优先使用组合。
WebControl:在Control的基础上增加了Style,呈现方面就是在Render(HtmlTextWriter writer) 方法中扩展了三个呈现方法,增加一个属性呈现方法, 伪代码如下:
publicvirtualvoidRenderBeginTag (HtmlTextWriterwriter) { this.AddAttributesToRender(writer); //呈现Tag开始标记 } protectedoverridevoidRender(HtmlTextWriterwriter) { //重写了Control的Render方法并增加了三个扩展方法 this.RenderBeginTag(writer); this.RenderContents(writer); this.RenderEndTag(writer); } protectedinternalvirtualvoidRenderContents (HtmlTextWriterwriter) { //调用Control的呈现 base.Render(writer); } publicvirtualvoidRenderEndTag(HtmlTextWriterwriter) { //呈现结束标记 } protectedvirtualvoidAddAttributesToRender (HtmlTextWriterwriter) { //呈现Attribute } CompositeControl重写了WebControl的Render (HtmlTextWriterwriter), 增加了设计时支持以创建子控件 protectedinternaloverridevoidRender(HtmlTextWriterwriter) { //如果在设计时,创建子控件,也就是在设计时增加友好体验 if(DesignMode) this.EnsureChildControls(); base.Render(writer); }
到此,关于“ASP.NET中的三个基类是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!