当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET组件设计Step by Step(3)

ASP.NET
asp.net下用服务器端代码解决浏览器兼容性问题
asp.net 安全的截取指定长度的html或者ubb字符串
asp.net 在线编辑word文档 可保存到服务器
asp.net 提高网站速度及如何利用缓存
asp.net 修改/删除站内目录操作后Session丢失问题
asp.net URL重写简化版 速学URL重写
asp.net EncryptHelper 加密帮助类
asp.net JSONHelper JSON帮助类
C# 调用存储过程简单完整的实例代码
vs2008 安装失败的总结与分享
HttpHandler HttpModule入门篇
ASP.NET(AJAX+JSON)实现对象调用
Asp.net 基于Cookie简易的权限判断
asp.net通过HttpModule自动在Url地址上添加参数
asp.net 字符串、二进制、编码数组转换函数
ASP.NET操作Excel备忘录
记录游客页面访问IP的简易实现代码 (asp.net+txt)
比较简单的将数据信息导入wrod文档方案(C# for word)
增加asp.net应用程序性能的20种方法(简单有效)
ASP.NET 图片防盗链的实现原理分析

ASP.NET组件设计Step by Step(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 25 ::
收藏到网摘: n/a

自定义控件(custom control)入门在服务器端中执行程序逻辑的组件,是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类中加入了一些新的功能,如样式、字体、背景、前景。。。 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 对象中;如果已启用跟踪功能,则存储有关控件的跟踪信息。 ResolveUrl 根据传递给 TemplateSourceDirectory 属性的值,将相对 URL 解析为绝对 URL。 ToString(从 Object 继承) 返回表示当前 Object 的 String。 公共事件DataBinding 当服务器控件绑定到数据源时发生。 Disposed 当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 Init 当服务器控件初始化时发生;初始化是控件生存期的第一步。服务器控件应执行任何创建和设置实例所需的初始化步骤。在该事件内无法使用视图状态信息;它尚未填充。在该事件的生存期内不应访问其他服务器控件,不论它是此控件的子级还是父级。不一定会创建其他服务器控件,也不一定能够访问它们。Load 当服务器控件加载到 Page 对象中时发生。通知服务器控件执行任何设置为在每次页请求时发生的处理步骤。开发者可以访问视图状态信息并利用该事件形成 POST 数据。还可以访问页控件层次结构内的其他服务器控件。PreRender 当服务器控件将要呈现给其包含的 Page 对象时发生。使用该事件在服务器控件呈现给页的输出之前执行任何更新。在该事件的生存期内可以保存服务器控件视图状态的任何更改。不保存呈现阶段内所做的同样更改。Unload 当服务器控件从内存中卸载时发生。 受保护的属性和方法有: 保护的属性ChildControlsCreated 获取一个值,该值指示是否已创建服务器控件的子控件。 Context 为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 Events 获取控件的事件处理程序委托列表。此属性为只读。 HasChildViewState 获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存