SharePoint Foundation 中的 Web 部件基础结构

上次修改时间: 2010年4月14日

适用范围: SharePoint Foundation 2010

Web 部件是在 Microsoft SharePoint Foundation 网页上下文内运行的服务器端控件。可使用 Web 部件自定义用户界面 (UI) 和编辑网站页面的内容。SharePoint Foundation 包括默认 Web 部件以及生成自定义 Web 部件的功能。在 SharePoint Foundation 中有两种支持的 Web 部件类型。这两种类型分别称作 SharePoint Web 部件和 ASP.NET Web 部件。ASP.NET Web 部件使用 System.Web.UI.WebControls.WebParts.WebPart 基类,而 SharePoint Web 部件使用 Microsoft.SharePoint.WebPartPages.WebPart 基类。这两种类型都受支持,但建议对所有新项目使用 ASP.NET Web 部件。

Web 部件的对象模型

SharePoint Foundation 中的 Web 部件基于 Microsoft ASP.NET Web 部件基础结构。若要为面向 SharePoint Foundation 的应用程序创建 Web 部件,应在 ASP.NET Web 部件基础结构之上构建自定义 Web 部件。不过在极少数情况下,可能必须创建支持在 ASP.NET Web 部件基础结构中不可用的 SharePoint Foundation 功能的 Web 部件。

ASP.NET Web 部件

ASP.NET Web 部件基础结构基于 WebPartManager 类,该类管理 Web 部件实例在运行时的生存期。

为了支持个性化,使用 Web 部件控件的每个 ASP.NET 页必须包含以下对象:

  • 正好一个 WebPartManager 对象,该对象跟踪向每个特定区域添加的 Web 部件,存储并检索有关每个 Web 部件自定义和个性化情况的数据。

  • 一个或多个 WebPartZone 对象,将在其中放入 Web 部件。

若要在 ASP.NET 应用程序中运行 SharePoint Foundation Web 部件,必须创建一个仅包含 WebPartManager 控件的一个实例以及一个或多个 WebPartZone 控件的 .aspx 页。WebPartManager 负责序列化与 Web 部件相关的数据,并在数据库中存储和检索该数据。

SPWebPartManagerWebPartZone 控件管理如何在相应的 SharePoint Foundation 内容数据库中将与 Web 部件关联的数据进行序列化。若要能够永久保存数据,ASP.NET Web 部件必须置于具有这两个控件的网页上。

因为包含 Web 部件的页需要这些 SharePoint Foundation 特定的控件,所以不能简单地将您的 ASP.NET 页复制到 SharePoint Foundation 网站中。若要将 ASP.NET Web 部件从 ASP.NET 应用程序移动到 SharePoint Foundation 应用程序,应先将其从 ASP.NET 中作为 .webpart 文件导出,然后再导入到 SharePoint Foundation 网站中。

SharePoint Web 部件

SharePoint Foundation Web 部件基础结构使用了 ASP.NET Web 部件控件集中的许多控件,并引入了从 ASP.NET Web 部件控件集所提供的基类继承的若干个自有控件。

例如,SharePoint Foundation 网站的网站页面不使用标准的 ASP.NET WebPartManager 类,而使用从 ASP.NET WebPartManager 继承的 SharePoint Foundation 特定的 SPWebPartManager 类。

备注

SharePoint Foundation 附带的默认母版页包含 SPWebPartManager 类的实例,因此在所有 SharePoint Foundation 内容页中将会自动包含该控件。

同样,SharePoint Foundation 网站的 Web 部件页也使用继承自 ASP.NET WebPartZone 类的 SharePoint Foundation 特定的 WebPartZone 类。

何时从 SharePoint WebPart 类派生

在极少数情况下,可能必须创建支持在 ASP.NET Web 部件基础结构中不可用的 SharePoint Foundation 功能的 Web 部件。在这些情况下,可以创建继承自 SharePoint WebPart 基类的类。这样的 Web 部件称作基于 SharePoint 的 Web 部件,仅可以在 SharePoint Foundation 网站中使用这些部件。

下面是由 SharePoint WebPart 类专门提供的功能列表:

  • 跨页连接

  • Web 部件区域之外的 Web 部件之间的连接

  • 客户端连接(Web 部件页服务组件)

  • 允许缓存到内容数据库的数据缓存基础结构

可以考虑从 WebPart 类派生的另一个原因与创建 Web 部件的新版本有关。若原始 Web 部件派生自 WebPart 类,而您希望将该 Web 部件的实例升级为新版本,则该 Web 部件的新版本也应从 SharePoint WebPart 类派生。

请参阅

引用

Microsoft.SharePoint.WebPartPages

其他资源

Web Parts Overview

Developing Web Parts in SharePoint Foundation

ASP .NET Web 部件控件集概述