Web 部件概述

Web 部件是在 Microsoft SharePoint Foundation 的网站页面上下文中运行的服务器端控件。它们可由用户编辑和配置。通过 Web 部件,用户只需将它们放在网站页面上即可向该页面添加功能。SharePoint Foundation 包括很多默认 Web 部件。此外,您可以构建自己的 Web 部件。

Web 部件的类型

SharePoint Foundation 中包含两种不同类型的 Web 部件。这两种类型均受支持,但建议对项目使用 ASP.NET 类型的 Web 部件。

  • ASP.NET Web 部件 — 这些 Web 部件基于 ASP.NET Web 部件基础结构而构建。ASP.NET 类型的 Web 部件对 System.Web.dll 具有依赖性,并且必须继承自 System.Web.UI.WebControls.WebParts 命名空间中的 WebPart 基类。这些 Web 部件可在 ASP.NET 应用程序以及 SharePoint Foundation 中使用,从而使它们具有很高的可重用性。

    备注

    若要为 SharePoint 网站专门创建 Web 部件且该部件将使用 SharePoint Foundation 对象模型,则可以从 ASP.NET System.Web.UI.WebControls.WebParts.WebPart 基类派生,并添加对项目中的 SharePoint 对象模型的引用。

  • 基于 SharePoint 的 Web 部件 — 这些 Web 部件对 Microsoft.SharePoint.dll 具有依赖性,并且必须继承自 Microsoft.SharePoint.WebPartPages 命名空间中的 WebPart 基类。这些 Web 部件只能在 SharePoint 网站中使用。

    备注

    有关何时从 SharePoint Foundation WebPart 类派生的详细信息,请参阅 SharePoint Foundation 中的 Web 部件基础结构主题。

SharePoint Web 部件基础结构

SharePoint Foundation Web 部件基础结构是基于派生自 ASP.NET WebPartManager 控件的名为 SPWebPartManager 的控件而构建的。SPWebPartManager 控件可重写 WebPartManager 控件的标准行为,以将 Web 部件数据保存在 SharePoint Foundation 内容数据库中,而不是 ASP.NET 服务数据库中。在大多数情况下,您不必担心如何直接处理 SPWebPartManager 控件,因为已在 v4.master 中定义了一个所需的实例。在创建链接到 v4.master 的网站页面时,SPWebPartManager 控件已经存在。如果您为自己创建的自定义 ASPX 页面不引用 v4.master 并且您希望支持将 Web 部件添加到 Web 部件区域,则需要向页面中添加 SPWebPartManager 控件。

备注

SharePoint Foundation 中 Web 部件页的 Web 部件区域应该使用在 Microsoft.SharePoint.WebPartPages 命名空间中定义的 WebPartZone 控件创建,而不是使用 ASP.NET 的标准 WebPartZone 控件。

在为标准 ASP.NET 应用程序创建 Web 部件页时,您需要添加与 WebPartManager 控件交互的逻辑来管理 Web 部件显示模式,而且您通常还需要明确地将编辑器部件和目录部件以及用于容纳它们的 HTML 布局一起添加到页面中。幸运的是,您不必在为 SharePoint Foundation 网站创建网站页面时执行这些更改,而是可以从在 Microsoft.SharePoint.WebPartPages 命名空间中定义的 WebPartPage 类继承,并且它将在后台为您执行所有工作。

有关创建 ASP.NET Web 部件的详细信息,请参阅在 SharePoint Foundation 中开发 Web 部件和 ASP.NET 文档中的 Web 部件控件集概述

自定义 Web 部件

自定义 Web 部件为开发人员提供了一种用于创建支持自定义和个性化的用户界面元素的方法。自定义 一词表示所有网站成员均可以看到这些更改。通过添加、重新配置和删除 Web 部件,各个用户可进一步个性化 Web 部件页。个性化 一词表示只有进行更改的用户才能看到这些更改。具有相应权限的网站所有者或网站成员可以使用浏览器或 Microsoft SharePoint Designer,通过添加、重新配置或删除 Web 部件来自定义 Web 部件页。

由于 SharePoint Foundation Web 部件基础结构当前是在 ASP.NET Web 部件控件集基础之上构建的,因此您可利用 ASP.NET 编程知识来创建快速且稳固的自定义 Web 部件。开发人员可以创建自定义 Web 部件来扩展 SharePoint 网站,以便为用户自定义和个性化操作提供更大的灵活性。开发自定义 Web 部件可提供一种扩展 SharePoint Foundation 网站的简单而稳固的方式。

下面是一些使用自定义 Web 部件且可从中受益的方法。您可以:

  • 创建自定义属性,可在用户界面中显示和修改这些属性。

  • **提高性能和可伸缩性。**已编译的自定义 Web 部件比脚本运行得更快。

  • 实现专用代码,而不泄漏源代码。

  • **保护和控制对 Web 部件中的内容的访问。**利用内置 Web 部件,具有相应权限的所有用户都可以更改内容和改变 Web 部件功能。使用自定义 Web 部件,可以确定要向用户显示的内容或属性(而不论其权限如何)。

  • 使 Web 部件可连接,允许 Web 部件向其他可连接 Web 部件提供数据或从中访问数据。

  • **与 SharePoint Foundation 中公开的对象模型进行交互。**例如,可以创建一个自定义 Web 部件来将文档保存到 SharePoint Foundation 文档库中。

  • **使用内置缓存工具来控制 Web 部件缓存。**例如,可以使用这些工具来指定何时读取、写入 Web 部件缓存或使其无效。

  • 从完善的开发环境中受益,此类环境具有由诸如 Microsoft Visual Studio 2010 之类的工具提供的调试功能。

  • **为要扩展的其他 Web 部件创建一个基类。**例如,若要创建具有类似特性和功能的 Web 部件集,请创建一个供多个 Web 部件继承的自定义基类。这将减少开发和测试后续 Web 部件的总成本。

  • **控制 Web 部件的实现。**例如,可以编写一个连接到后端数据库的自定义服务器端 Web 部件,也可以创建一个与更多类型的 Web 浏览器兼容的 Web 部件。

请参阅

任务

如何:导出 ASP.NET Web 部件并将其导入 SharePoint Foundation 网站

引用

Microsoft.SharePoint.WebPartPages

概念

SharePoint Foundation 中的 Web 部件基础结构

其他资源

在 SharePoint Foundation 中开发 Web 部件

修订记录

日期

说明

2010 年 5 月

初始发布