ASP.NET自定义控件入门需要掌握什么内容呢?开始我们的讲述吧:
ASP.NET自定义控件的必要性:在服务器端中执行程序逻辑的组件,是ASP.NET 应用程序的基本构造块。为了能够在ASP.NET环境执行,必须满足一定条件。
为了能够参与到网页框架执行,需要满足IComponent, IDisposable, IParserAccessor, IdataBindingsAccessor等接口。所以框架提供System.Web.Control类供控件开发者继承。
- IComponent//提供组件所需的基本功能,接口实现为:
- {
- ISite Site {get; set;}//提供站点接口,组件可以通过此接口访问容器
- event EventHandler Disposed; //事件
- }
如果实现了此接口,就成为可设计组件,可加入到可视化设计器工具箱,能够脱放到页面(Isite接口)中,属性浏览器中显示属性。
IDisposable 接口实现组件自身资源释放(Icomponent实际上继承自IDisposable )
IParserAccessor 该接口规定AddParsedSubObject(object obj)方法用于通知服务器控件已分析元素(XML 或 HTML)。分析元素时,元素被识别为实现该接口的服务器控件的子级。这些元素将被转换为对象。实现该接口时,所创建的控件在被通知已分析元素后立即定义要发生的处理。
- IDataBindingsAccessor //接口允许在设计时访问控件的数据绑定表达式集合。
- {
- DataBindingCollection DataBindings {get;}// 指示控件的所有数据绑定的集合。此属性为只读。
- bool HasDataBindings {get;} //返回控件是否包含任何数据绑定逻辑。
- }
继承自Control的WebControl类为表现HTML(毕竟最后用户看到的是HTML)而在Control类中加入了一些新的功能,如样式、字体、背景、前景。。。
ASP.NET自定义控件之Control类的定义:
◆公共属性:
ClientID 获取由 ASP.NET 生成的服务器控件标识符。
Controls 获取 ControlCollection 对象,该对象表示 UI 层次结构中指定服务器控件的子控件。
EnableViewState 获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。
ID 获取或设置分配给服务器控件的编程标识符。
NamingContainer 获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 Control.ID 属性值的服务器控件。
Page 获取对包含服务器控件的 Page 实例的引用。
Parent 获取对页 UI 层次结构中服务器控件的父控件的引用。
Site 获取有关服务器控件所属 Web 站点的信息(原文自MSDN,但是我认为不对,应该是指组件的“容器”站点,并非 web site)。
TemplateSourceDirectory 获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。
UniqueID 获取服务器控件的唯一的、以分层形式限定的标识符。
Visible 获取或设置一个值,该值指示服务器控件是否作为 UI 呈现在页上。
◆公共方法
DataBind 将数据源绑定到被调用的服务器控件及其所有子控件。
Dispose 使服务器控件得以在从内存中释放之前执行最后的清理操作。
Equals(从 Object 继承) 已重载。确定两个 Object 实例是否相等。
FindControl 已重载。在当前的命名容器中搜索指定的服务器控件。
GetHashCode(从 Object 继承) 用作特定类型的哈希函数,适合在哈希算法和数据结构(如哈希表)中使用。
GetType(从 Object 继承) 获取当前实例的 Type。
HasControls 确定服务器控件是否包含任何子控件。
RenderControl 将服务器控件的内容输出到所提供的 HtmlTextWriter 对象中;