在学习了自己定义控件后,总结了一些关键点.
下面的是一个比较实在的好例子.
给自定义的控件属性加上枚举值.
Page本身也是一个控件,继承自Control类,它是控件树的根.为了生成控件树,页面将建立一个HtmlTextWrite类实例.
在这个实例中封装了响应流,接着页面将主个HtmlTextWrite对象传递给RenderControl方法。RenderControl方法检查控件的visible属性是否为真。如果为真。RenderControl调用Render方法。Render方法的默认实现会调用RenderChildren方法。RenderChildren方法默认调用每个子控件的RenderControl方法,通过这种递归调用的方法就可以生成控件树。除了visible属性为假的控件。控件树中所有控件都会自动最终生成。
Control基类定义了三种Rendering方法。
1.Render(HtmlTextWriter writer)
2.RenderChildren(HtmlTextWriter writer)
3.RenderControl(HtmlTextWriter writer)
HtmlTextWrite的各种方法的参数取值为以下三种枚举类型:
1.HtmlTextWriteTag 2.HtmlTextWriteAttribute 3.HtmlTextWriteStyle
返回客户端时显示为Div标签功能(重载DIV属性)
Protected override HtmlTextWriteTag TagKey
{
return HtmlTextWriteTag.Div;
}