现在的位置: 首页 > 综合 > 正文

[翻译]在asp.net 2.0中使用WebParts 『转』

2012年11月15日 ⁄ 综合 ⁄ 共 6087字 ⁄ 字号 评论关闭

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 部件页

注意

当用户在运行时从控件目录中选择控件时,DeclarativeCatalogPart控件会将控件的新实例添加到网页中。用户可以将目录中同一控件的多个实例添加到网页中。

启用 DeclarativeCatalogPart Web 服务器控件

必须将 DeclarativeCatalogPart放在 CatalogZoneBase 区域中,如 CatalogZone 区域。仅当网页处于目录显示模式时 DeclarativeCatalogPart控件才变为可见。

有关演示如何使用 CatalogZone控件的代码示例,请参见 CatalogZone Web 服务器控件声明性语法CatalogZone中的“示例”一节。

创建控件的应用程序范围的目录

DeclarativeCatalogPart 使您能够设置可在整个站点中使用的控件目录。您可以将 WebPartsListUserControlPath 属性设置为用户控件(包含目录中的服务器控件列表)的路径,而不是在 DeclarativeCatalogPart控件中声明单独的服务器控件。在运行时,用户控件中引用的服务器控件在目录中加载。此策略使多个页面或站点能够引用相同的用户控件来创建目录。当用户控件中的服务器控件列表更新时,将更新基于该用户控件的所有目录。

PageCatalogPart

PageCatalogPart类充当页目录来维护以前添加到某个用户已关闭的页的所有控件,以便该用户能够将这些控件重新添加到该页。仅当网页处于目录显示模式(一种特殊视图,使用户能够添加和移除页上的控件)时,此控件才可见。只有已关闭的控件才添加到页目录。如果希望向用户提供关闭和重新打开控件的灵活性,请将一个 PageCatalogPart控件添加到页。

注意

如果页面不允许用户关闭控件,则无需向该页添加 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控件以及每个受承载控件的说明的列表。

EditorPart 控件

说明

AppearanceEditorPart

提供一个接口,通过此接口,用户可以在运行时自定义 WebPart控件的视觉属性,例如宽度、高度和标题。

有关更多信息,请参见 AppearanceEditorPart Web 服务器控件

BehaviorEditorPart

提供一个接口,通过此接口,用户可以在运行时自定义 WebPart控件的行为属性,例如显示最小化、关闭和编辑按钮。

有关更多信息,请参见 BehaviorEditorPart Web 服务器控件

LayoutEditorPart

提供一个接口,通过此接口,用户可以在运行时自定义 WebPart控件的布局属性,例如在最小化和正常状态之间进行选择,或设置控件出现在目标区域中时所处的索引。

有关更多信息,请参见 LayoutEditorPart Web 服务器控件

PropertyGridEditorPart

提供一个接口,通过此接口,用户可以在运行时编辑已声明为 WebPart控件的一部分的自定义属性。

有关更多信息,请参见 PropertyGridEditorPart Web 服务器控件

当用户将 Web 部件页置于编辑模式时,EditorZone控件将变为可见的。

有关显示模式的详细信息,请参见演练:更改 Web 部件页上的显示模式

EditorZone Web 服务器控件是一个区域控件。有关区域及如何在 Web 部件应用程序中使用区域的更多信息,请参见演练:创建 Web 部件页WebZone 基类的参考文档以及 Web 部件控件集概述

AppearanceEditorPart

AppearanceEditorPart控件使最终用户能够编辑 WebPart 控件的几个用户界面属性。

下表列出了用户可自定义的功能,以及可使用 AppearanceEditorPart控件编辑的对应的 WebPart控件属性值。

用户可自定义的功能

WebPart 控件属性

为标题设置文本。

Title

选择标题和边框选项类型。

ChromeType

选择内容在页上的流动方向。

Direction

设置高度和单位。

Height

设置宽度和单位。

Width

隐藏或显示控件已隐藏。

Hidden

若要编辑 WebPart控件的其他属性和行为,可使用 Web 部件控件集所提供的其他 EditorPart 控件。这些控件包括 BehaviorEditorPartLayoutEditorPartPropertyGridEditorPart 控件。内置 EditorPart控件提供了 WebPart控件的常用编辑功能。不过,您也可以通过从 EditorPart类继承来创建自定义编辑器控件。有关代码示例,请参见 System.Web.UI.WebControls.WebParts.EditorPart

启用 AppearanceEditorPart 控件

AppearanceEditorPart 控件仅在 Web 部件页处于编辑模式且用户已选择关联的 WebPart控件进行编辑时显示。

BehaviorEditorPart

BehaviorEditorPart Web 服务器控件是一个编辑器部件控件,最终用户可以使用该控件在运行时编辑关联的 WebPart 控件上的数个用户界面 (UI) 属性。

下表列出了用户可自定义的功能及可使用 BehaviorEditorPart控件编辑的对应 WebPart控件属性值。

用户可自定义的功能

WebPart 控件属性

设置 Web 部件的说明文本。

·                      

抱歉!评论已关闭.