您的位置:首页 > 编程语言 > ASP

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方法;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: