在加载项 Web 的网页中添加 Web 部件
可以在 SharePoint 加载项的加载项 Web 页面中添加现成可用的 Web 部件,但请务必注意,如果你需要更新加载项,执行此操作不能导致任何问题。
有关说明本主题指南的代码示例,请参阅 OfficeDev/Core.WebPartOnAppWebPage。
向页面添加 Web 部件
在 Visual Studio 中创建 SharePoint 托管的 SharePoint 加载项项目。 有关详细信息,请参阅开始创建 SharePoint 托管的 SharePoint 加载项。
打开要在其中添加 Web 部件的 .aspx 文件。 本主题使用 Default.aspx 作为示例。
在你想让 Web 部件包含标记的
<asp:Content>
元素中添加 WebPartZone。 通常情况下,应将其添加到<asp:Content>
中,其中,ContentPlaceHolderId
为PlaceHolderMain
。 示例如下。<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="HomePage1" Title="loc:full" /> </asp:Content>
警告
可以将 Web 部件元素(如 <WebPartPages:XsltListViewWebPart)> 添加为 WebPartZone 的子元素。 但这通常是 SharePoint 加载项中的不建议做法。 如果需要更新加载项,在 .aspx 文件中插入的 Web 部件元素可能会导致在某些情况下更新失败,并显示消息“已将具有此 ID 的 Web 部件添加到此页面”。建议将 Web 部件添加到页面的元素清单中,如此过程稍后所述。
打开页面的元素清单文件。 通常名为 elements.xml,并位于与 aspx 文件相同的项目文件夹中。
在页面的 File 元素中,添加一个子 AllUsersWebPart 元素,并将其 WebPartZoneID 设置为你在页面上创建的 Web 部件区域的值,如此示例中所示。
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="Pages"> <File Path="Pages\Default.aspx" Url="Pages/Default.aspx" ReplaceContent="TRUE" > <AllUsersWebPart WebPartZoneID="HomePage1" WebPartOrder="1"> </AllUsersWebPart> </File> </Module> </Elements>
添加 CDATA 元素作为 AllUsersWebPart 的子元素,然后添加 webParts 元素作为 CDATA 的子元素,如此示例中所示。
<AllUsersWebPart WebPartZoneID="HomePage1" WebPartOrder="1"> <![CDATA[ <webParts> </webParts> ]]> </AllUsersWebPart>
添加 webPart 标记作为 webParts 元素的子元素。 以下是添加 XsltListViewWebPart 的示例。 它假定名为“测试列表”的自定义列表是同一加载项项目的一部分。 有关如何将自定义列表添加到加载项 Web 的信息,请参阅创建包含自定义 SharePoint 列表和内容类型的提供程序托管的加载项。
注意
请注意,Web 部件没有 ID 属性。 最佳做法是,仅在两种真正需要的情况下添加 Web 部件的显示 ID:Web 部件要添加到 SharePoint Wiki 网页中。 Web 部件是已连接的两个或更多个 Web 部件之一。
<webParts> <webPart xmlns="http://schemas.microsoft.com/WebPart/v3"> <metaData> <type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> </metaData> <data> <properties> <property name="ListUrl">Lists/{TestList}</property> <property name="IsIncluded">True</property> <property name="NoDefaultStyle">True</property> <property name="Title">{Test List}</property> <property name="PageType">PAGE_NORMALVIEW</property> <property name="Default">False</property> <property name="ViewContentTypeId">0x</property> </properties> </data> </webPart> </webParts>
按 F5 调试加载项。 应该会在页面上看到 Web 部件。