WebControl的Reading方法

WebControl的Reading方法有Render,RendControl,RendChildren.
下面以Page类为例,(Page类也由Control类派生)

 

public   void  RenderControl(HtmlTextWriter writer)
{
   
if(Visible)
     

        Render(writer);
     }

}


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


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

}


每一个页面都有一个控件树,代表页面所拥有的子控件,为 了生成控件树,页面需要建立一个HtmlTextWriter类的实例,这个实例封装了响应流,接着页面将这个HtmlTextWriter对象传递给RenderControl方法,RenderControl方法 检查控件地Visible属性是否为真,若为真,RenderControl调用自己的Render方法,Render方法默认的调用RenderChildren方法,RenderChidren方法又默认的调用这个控件的子控件的RenderControl方法,通过这种递归的调用,就可以生成控件树,除了Visble属性为假的控件,控件树种的控件都会最终生成,即生成Html,显示于浏览器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值