WebParts概述
本质:
WebParts把网页隔成了一个一个更小的空间。http://www.3721.com/就是一个WebParts的例子。
VS2005控件图
WebPartManager
|
WebPartManager 控件是 Web 部件控件集的核心控件,用于管理所有 Web 部件控件、Web 部件功能和 Web 部件事件。
必须向使用 Web 部件控件的每个页添加一个(仅仅一个)WebPartManager 控件。WebPartManager 控件只能由通过身份验证的用户使用。
WebPartManger 任务
下表列出了由 WebPartManager 控件执行的任务。
任务
|
控件功能
|
管理 Web 部件控件
|
管理页上提供 Web 部件功能的控件,包括 WebPart 控件、连接控件、区域控件及其他控件。
|
添加和移除 Web 部件控件
|
提供在页上添加、删除和关闭 WebPart 控件的方法。
|
管理连接
|
添加和移除控件之间的连接。监视连接以查找问题。
|
对控件和页进行个性化设置
|
使用户可以将控件移到页上,并启动用户可以在其中编辑控件的外观、属性和行为的视图。维护每一页上的用户特定的个性化设置。
|
在页面视图之间切换
|
在页面视图之间切换,使用户能够执行任务,例如更改页面布局或编辑控件。
|
引发 Web 部件生命周期事件
|
定义并引发 Web 部件控件的生命周期事件,例如在添加、移动、连接或删除控件时的事件。
|
启用控件的导入和导出
|
导出包含 WebPart 控件属性的状态的 XML 流,并允许用户导入文件以便对其他页或站点中的复杂控件进行个性化设置。
|
将 Web 部件控件与 WebPartManager 关联
若要将 Web 部件控件与 WebPartManager 关联,需要将 Web 部件控件放入 WebPartZone 控件区域,还必须在同一页中放入一个 WebPartManager 控件。
|
ProxyWebPartManager
|
当在内容页的关联母版页中声明了 WebPartManager 控件时,即可利用 ProxyWebPartManager 控件在内容页中声明静态连接。
一个使用 Web 部件控件的网页必须包含且只能包含一个 WebPartManager 控件,该控件用于管理该页上的所有 Web 部件控件。当 Web 部件应用程序使用母版页时,通常将 WebPartManager 控件放在母版页中。如果内容页与母版页在运行时相合并,单个 WebPartManager 控件即可管理所有内容页上的 Web 部件控件。
若要声明静态连接,通常需要将 <asp:webpartconnection> 元素添加为 <staticconnections> 元素的子元素,而后者本身又必须是 <asp:webpartmanager> 元素的子元素。但是,如果您使用的是母版页,并将 WebPartManager 控件放在母版页中,您将无法在内容页中创建 <asp:webpartmanager> 元素;只允许存在一个 WebPartManager 控件。此时的解决方案是:在内容页上使用 ProxyWebPartManager 控件来代替 WebPartManager 控件。
在运行时,ProxyWebPartManager 控件中的连接会被添加到 WebPartManager 控件的 StaticConnections 集合中,并被视为与任何其他连接等同。
有关演示如何使用 ProxyWebPartManager 类的代码示例,请参见 System.Web.UI.WebControls.WebParts.ProxyWebPartManager 的“示例”部分。
ProxyWebPartManager 控件与 WebManagerControl 之间需要注意的差异
只有在母版页中创建了 WebPartManager 控件并要在内容页中声明静态连接时才使用 ProxyWebPartManager 控件。因此,ProxyWebPartManager 控件与 WebPartManager 控件相比功能要受到更多限制。虽然 ProxyWebPartManager 控件充当的是旨在包含内容页中 WebPartManager 控件的静态连接的代理,但它并不是继承自 WebPartManager 控件。它直接继承自 Control 类,并且只重写了几个基成员。
|
WebPartZone
|
WebPartZone 控件用作 Web 部件控件集中用于承载网页上的 WebPart 控件的主要控件,并为其包含的控件提供公共 UI。
WebPartZone 控件从基类 WebZone 中继承用户界面元素,并为其包含的控件提供公共 UI。这些公共 UI 元素统称为镶边,由所有控件上的外围 UI 元素组成,这些元素包括:边框、标题、页眉和页脚、样式特性以及谓词(即用户可以在控件上执行的 UI 操作,如关闭或最小化)等。
|
CatalogZone
|
Web 部件控件(例如 CatalogZone 控件)的一项主要功能是可以让最终用户个性化网页并保存其个性化设置。CatalogZone 控件允许最终用户在运行时向 Web 部件页添加 WebPart 控件或其他服务器控件。CatalogZone 控件用作 Web 部件控件集内的主控件,用于在网页中承载 CatalogPart 控件。
仅当用户将网页切换至目录显示模式 (CatalogDisplayMode) 时,CatalogZone 控件才变为可见。有关演示如何使用 CatalogZone 控件的代码示例.
CatalogZone Web 服务器控件附带的 CatalogPart 控件
由 CatalogZone 控件创建的区域可以包含多种 CatalogPart 控件。每个 CatalogPart 控件都是一种容器,其中包含用户可添加至页面的服务器控件。CatalogPart 控件因其包含的服务器控件的来源而不同。
|
DeclarativeCatalogPart
|
DeclarativeCatalogPart 控件使您能够将 WebPart 或其他服务器控件的目录添加到网页中,同时也使用户能够在运行时更改页面上的控件集和功能。目录是 WebPart 或其他服务器控件的列表,当页面处于目录显示模式时,该列表是可见的。在设计时,您可以将控件添加到 DeclarativeCatalogPart 控件中;在运行时,用户可以选择要在页面中查看的控件,方法是从目录列表中进行选择。有关更多信息,请参见 ASP.NET Web 部件页。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 7.5pt; HEIGHT: 7.5pt" alt="Note" type="#_x0000_t75"><imagedata o:href="http://msdn2.microsoft.com/zh-cn/library/ms366722.note(zh-cn,VS.80).gif" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.gif"></imagedata></shape>注意
|
当用户在运行时从控件目录中选择控件时,DeclarativeCatalogPart 控件会将控件的新实例添加到网页中。用户可以将目录中同一控件的多个实例添加到网页中。
|
启用 DeclarativeCatalogPart Web 服务器控件
必须将 DeclarativeCatalogPart 放在 CatalogZoneBase 区域中,如 CatalogZone 区域。仅当网页处于目录显示模式时 DeclarativeCatalogPart 控件才变为可见。
有关演示如何使用 CatalogZone 控件的代码示例,请参见 CatalogZone Web 服务器控件声明性语法和 CatalogZone 中的“示例”一节。
创建控件的应用程序范围的目录
DeclarativeCatalogPart 使您能够设置可在整个站点中使用的控件目录。您可以将 WebPartsListUserControlPath 属性设置为用户控件(包含目录中的服务器控件列表)的路径,而不是在 DeclarativeCatalogPart 控件中声明单独的服务器控件。在运行时,用户控件中引用的服务器控件在目录中加载。此策略使多个页面或站点能够引用相同的用户控件来创建目录。当用户控件中的服务器控件列表更新时,将更新基于该用户控件的所有目录。
|
PageCatalogPart
|
PageCatalogPart 类充当页目录来维护以前添加到某个用户已关闭的页的所有控件,以便该用户能够将这些控件重新添加到该页。仅当网页处于目录显示模式(一种特殊视图,使用户能够添加和移除页上的控件)时,此控件才可见。只有已关闭的控件才添加到页目录。如果希望向用户提供关闭和重新打开控件的灵活性,请将一个 PageCatalogPart 控件添加到页。
<shape id="_x0000_i1026" style="WIDTH: 7.5pt; HEIGHT: 7.5pt" alt="Note" type="#_x0000_t75"><imagedata o:href="http://msdn2.microsoft.com/zh-cn/library/ms366721.note(zh-cn,VS.80).gif" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.gif"></imagedata></shape>注意
|
如果页面不允许用户关闭控件,则无需向该页添加 PageCatalogPart 控件。
|
有关更多信息,请参见 ASP.NET Web 部件页。
关于已关闭的控件
用户可以关闭 Web 部件页上的控件。已关闭的控件具有下面的特性:
- 页上不可见。
- 不在页上呈现。
- 不参与页生命周期的各阶段。
关闭控件与删除控件不同,删除是将控件从页上永久移除。用户可以从页目录重新打开已关闭的控件实例,如果用户删除控件,则永远无法恢复该控件的实例。
|
ImportCatalogPart
|
ImportCatalogPart Web 服务器控件为一个 WebPart 控件(或用作 WebPart 控件的其他 ASP.NET 服务器控件)导入说明文件,以便可以按预先指定的设置由用户在运行时将该控件添加到网页中。该说明文件使用户可以共享 WebPart 控件的设置。
说明文件与控件本身不同。它是以 .WebPart 扩展名结尾的 XML 文件,并包含名称/值对(描述控件的状态)。说明文件使用特定的 XML 格式,如主题 Web 部件控件说明文件中所述。除了描述控件的状态以外,说明文件还引用该控件名和包含该控件的程序集(或文件)。
用户导入说明文件之后,在该文件中引用的 WebPart 控件出现在 ImportCatalogPart 控件中,并且用户可以将该控件添加到页面上。
将 Web 部件控件与 ImportCatalogPart Web 服务器控件关联
与 ImportCatalogPart 控件关联的 Web 部件控件可以编译成程序集,也可以是一个用户控件(.ascx 文件)。在任一情况下,导入的说明文件中引用的控件都必须存在于包含宿主网页的 Web 服务器上。
用户使用 ImportCatalogPart 控件将说明文件(及其关联的服务器控件)导入网页,您必须已经将此控件添加到页面中。当用户将页面切换到目录显示模式后,将出现 ImportCatalogPart 控件,用户可以浏览到此控件的 .WebPart 说明文件,然后导入此控件。控件的外观和属性在导入的说明文件中指定。
在导入 WebPart 控件的说明文件之前,用户必须首先基于现有的 WebPart 控件创建(导出)该文件。满足以下条件时,可以为一个控件导出说明文件:
- 该控件具有用 Personalizable 属性 (Attribute) 标记的属性 (Property)。
- Web.config 文件将 <webParts> 元素的 enableExport 属性值设置为 true。
- 您已经将控件的 ExportMode 属性值设置为默认值 None(该值禁止导出)以外的值。
启用 ImportCatalogPart Web 服务器控件
当 Web 部件页处于编辑模式以及用户选择某一关联的 WebPart 控件进行编辑时,在运行时将显示 ImportCatalogPart Web 服务器控件。有关更多信息,请参见演练:更改 Web 部件页上的显示模式。
|
EditorZone
|
Web 部件的一项主要功能是使最终用户能够个性化网页并保存其个性化设置。修改 Web 部件页的一个方面包括编辑可见 WebPart 控件的外观、布局、行为和其他属性。
Web 部件控件集中有多个控件可提供编辑功能,其中包括 EditorZone 控件,此控件是 Web 部件控件集中用于承载网页上的 EditorPart 控件的主控件。
下表提供了可由 EditorZone 承载的 EditorPart 控件以及每个受承载控件的说明的列表。
当用户将 Web 部件页置于编辑模式时,EditorZone 控件将变为可见的。
有关显示模式的详细信息,请参见演练:更改 Web 部件页上的显示模式。
EditorZone Web 服务器控件是一个区域控件。有关区域及如何在 Web 部件应用程序中使用区域的更多信息,请参见演练:创建 Web 部件页、WebZone 基类的参考文档以及 Web 部件控件集概述。
|
AppearanceEditorPart
|
AppearanceEditorPart 控件使最终用户能够编辑 WebPart 控件的几个用户界面属性。
下表列出了用户可自定义的功能,以及可使用 AppearanceEditorPart 控件编辑的对应的 WebPart 控件属性值。
用户可自定义的功能
|
WebPart 控件属性
|
为标题设置文本。
|
Title
|
选择标题和边框选项类型。
分享到:
Global site tag (gtag.js) - Google Analytics
| |
相关推荐
WebParts是ASP.NET 2.0中用于构建可定制用户界面的组件,用户可以在浏览器端自定义WebPart的布局和配置,提供个性化的Web体验。 九、缓存机制 ASP.NET 2.0增强了缓存功能,包括页面输出缓存、数据缓存以及自定义...
在《专业Web部件与自定义控件在ASP.NET 2.0》一书中,作者彼得·沃格尔(Peter Vogel)深入探讨了ASP.NET 2.0平台下Web部件(Web Parts)的技术细节及其应用。Web部件类似于PHP中的小工具(Widgets),是一种可复用...
ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它在.NET Framework 2.0之上构建,极大地简化了Web开发流程。本篇将深入探讨ASP.NET 2.0的核心特性、开发技巧以及最佳实践。 一、ASP.NET ...
- **新特性**:相较于之前的版本,ASP.NET 2.0引入了许多新功能,如增强的安全性、改进的性能以及更丰富的内置控件等。 - **开发环境**:开发者通常使用Visual Studio这样的集成开发环境(IDE)来编写ASP.NET应用程序...
ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了强大而高效的应用程序开发环境。本教程针对初学者,将深入浅出地介绍ASP.NET 2.0的核心概念和技术,帮助你快速...
《Professional Web Parts and Custom Controls with ASP.NET 2.0》是一本由Peter Vogel编写的书籍,该书深入探讨了ASP.NET 2.0平台下的Web部件与自定义控件的开发技术。本书为读者提供了全面的指导,不仅覆盖了基础...
### .NET Framework 2.0新特性详解 #### 一、概述 .NET Framework 2.0 Beta 版本是微软发布的一个重要的软件开发框架更新,它不仅增强了原有的功能,还引入了许多新特性,极大地提高了开发效率及应用性能。本文...