ASP.NET组件设计Step by Step(3)
点击次数:15 次 发布日期:2008-11-26 23:43:18 作者:源代码网
|
源代码网推荐 源代码网推荐在服务器端中执行程序逻辑的组件,是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 获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 源代码网推荐 源代码网推荐IsTrackingViewState 获取一个值,该值指示服务器控件是否将更改保存到其视图状态。 源代码网推荐 源代码网推荐ViewState 获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 源代码网推荐 源代码网推荐ViewStateIgnoresCase 获取一个值,该值指示 StateBag 对象是否不区分大小写。 源代码网推荐 源代码网推荐受保护的方法 源代码网推荐 源代码网推荐AddParsedSubObject 通知服务器控件某个元素(XML 或 HTML)已经过语法分析,并将该元素添加到服务器控件的 ControlCollection 对象。 源代码网推荐 源代码网推荐ClearChildViewState 删除服务器控件的所有子控件的视图状态信息。 源代码网推荐 源代码网推荐CreateChildControls 通知使用基于合成的实现的服务器控件创建它们包含的任何子控件,以便为回发或呈现做准备。 源代码网推荐 源代码网推荐CreateControlCollection 创建一个新的 ControlCollection 对象来保存服务器控件的子控件(包括文本控件和服务器控件)。 源代码网推荐 源代码网推荐EnsureChildControls 确定服务器控件是否包含子控件。如果不包含,则创建子控件。 源代码网推荐 源代码网推荐Finalize(从 Object 继承) 已重写。允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 源代码网推荐 源代码网推荐IsLiteralContent 确定服务器控件是否只包含文字内容。Asp.net页面中普通的html标签被asp.net编译为一个 LiteralContent控件(意味着轻型控件)。 源代码网推荐 源代码网推荐LoadViewState 从 SaveViewState 方法保存的上一个页请求还原视图状态信息。 源代码网推荐 源代码网推荐MapPathSecure 如果请求服务器控件有足够的安全权限读取映射结果,检索相对于源文件的映射物理文件路径。 源代码网推荐 源代码网推荐MemberwiseClone(从 Object 继承) 创建当前 Object 的浅表副本。 源代码网推荐 源代码网推荐OnBubbleEvent 确定服务器控件的事件是否沿页的 UI 服务器控件层次结构向上传递。 源代码网推荐 源代码网推荐OnDataBinding 引发 DataBinding 事件。 源代码网推荐 源代码网推荐OnInit 引发 Init 事件。 源代码网推荐 源代码网推荐OnLoad 引发 Load 事件。 源代码网推荐 源代码网推荐OnPreRender 引发 PreRender 事件。 源代码网推荐 源代码网推荐OnUnload 引发 Unload 事件。 注意 在服务器控件生存期的此阶段,服务器控件应执行所有最后的清理操作,例如关闭文件、关闭数据库连接和丢弃对象。 源代码网推荐 源代码网推荐RaiseBubbleEvent 将所有事件源及其信息分配给控件的父级。 源代码网推荐 源代码网推荐Render 将服务器控件内容发送到提供的 HtmlTextWriter 对象,此对象编写将在客户端呈现的内容。 源代码网推荐 源代码网推荐RenderChildren 将服务器控件子级的内容输出到提供的 HtmlTextWriter 对象,此对象编写将在客户端呈现的内容。 源代码网推荐 源代码网推荐SaveViewState 保存自页回发到服务器后发生的任何服务器控件视图状态更改。 源代码网推荐 源代码网推荐TrackViewState 导致跟踪服务器控件的视图状态的更改,以便这些更改可以存储到服务器控件的 StateBag 对象中。通过 Control.ViewState 属性可访问此对象。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐了解了Control这个“基石”,我们可以了解到,编写服务器组件就是在此基石上建造,同时我们可以调用的方法、数据,可以截获的事件都列出,以上数据成员是我们编写服务器控件的“输入数据”(当然还可以有其他输入数据,但是主要数据在此);以上方法是帮助我们操控控件以及控件同外部交互,事件为我们“感知”外部交互提供时机;另外,服务器控件也需要被容器调用相关方法(譬如render),我们可以重写这些方法,修改Control的缺省GUI表现。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网供稿. |
