控件开发系列(三)

来源:互联网 发布:颜宁 施一公 知乎 编辑:程序博客网 时间:2024/06/05 06:56

为什么要重写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); } }

(1)RenderControl方法

先判断其Visible然后调用Render方法

(2) Render方法

使用HtmlTextWriter将标记字符和文本输出然后调用RenderChildren方法

(3)RenderChildren方法

判断当前控件是否有子控件,然后再调用RenderControl方法根据子控件的Visible值输出子控件.

我们了解上面三个方法后,就会知道,一般情况下,我们无须重写RenderControl方法和RenderChildren方法.所以最合适的就是重写Render方法了

原创粉丝点击