如何:创建承载外部应用程序的 Web 部件

上次修改时间: 2011年9月1日

适用范围: SharePoint Foundation 2010

本主题概述如何创建承载非 SharePoint 应用程序的 Web 部件,该应用程序可能与使用该 Web 部件的 Microsoft SharePoint Foundation Web 应用程序位于不同的域中。通常,您的 Web 部件具有可编辑的属性,在这种情况下,您还需要为该 Web 部件创建工具部件。

创建 Web 部件

  1. 在 Microsoft Visual Studio 2010 中,启动一个空 SharePoint 项目。

  2. 将 Web 部件添加到该项目中并打开 cs 或 vb 源代码文件。

  3. Microsoft.SharePoint.WebPartPages 命名空间添加 using 语句(在 Visual Basic 中为 Imports)。

  4. 将 Web 部件类设置为继承自 ClientApplicationWebPartBase,而不是继承自默认 WebPart

  5. 根据需要重写类构造函数、CreateChildControlsRenderContents 方法。

    如果要将 Web 部件用于自定义外部应用程序提供程序 (EAP)CreateChildControls 方法应执行以下操作:

    1. 调用继承的 GetExternalApplicationRequestResult() 方法。

    2. 调用继承的 GetInitParams() 方法。

    3. 调用通过调用 GetExternalApplicationRequestResult() 返回的 SPExternalApplicationRequestResult 对象的 GetContentControl(String) 方法,并将其作为一个参数传递到调用 GetInitParams() 所返回的 String 对象。

    如果没有创建也没有向包含 Web 应用程序的 Web 服务注册任何自定义 EAP,那么上述一系列调用过程将不执行任何操作。

  6. 如果 Web 部件的外部应用程序 XML 包括自定义属性,则必须创建自定义 EAP 来读取这些属性。在创建自定义 EAP 的过程中,需实现 OnApplicationWebPartCreateChildControls(SPExternalApplicationRequestProperties) 方法。有关创建自定义 EAP 的详细信息,请参阅如何:创建自定义外部应用程序提供程序

  7. 如果 Web 部件具有可编辑的属性,则实现继承的 CreateEditorParts() 方法以便为工具部件类创建一个对象。有关此类的详细信息,请参阅To Create the Tool Part过程。

创建工具部件

  1. 将另一个 Web 部件添加到项目中。

  2. 将相关类设置为继承自 EditorPart,而不是继承自默认 WebPart

  3. 添加 SyncChanges() 方法的实现,以将 Web 部件中的可编辑属性读取到工具部件的可编辑控件中。

  4. 添加 ApplyChanges() 方法的实现,以从工具部件中的控件读取值并将这些值赋予 Web 部件的属性。

  5. 根据需要重写 CreateChildControls 方法、RenderContents 方法及其他成员。