如何将 SharePoint 2013 webparts 直接嵌入 aspx 布局页面作为该布局的默认 webparts

How to embed SharePoint 2013 webparts directly in aspx layout page as default webparts for that layout

我正在使用 SharePoint 2013,并且有一个自定义母版页和多个 aspx 布局页,所有这些要部署的内容都被复制到网站设置中的 "Master pages and page layouts" 部分。

这些 aspx 页面包含 Web 部件区域,但如何在 Web 部件区域内的 aspx 页面标记中添加 Web 部件?

我基本上想做的是将 "Default" webparts 嵌入到页面的布局中,这样当为特定页面选择此布局时,它已经添加了 webparts。

我说的是开箱即​​用的 Web 部件,例如内容编辑器 Web 部件和文档库 Web 部件。在 2013 年,这些现在都被称为 "Apps"。

非常感谢任何建议。

最简单的方法是利用设计器为您创建代码...

  • 创建页面并在 SharePoint Designer 中以高级模式打开它。
  • 将所需的 Web 部件添加到 Web 部件区域。这将创建 需要 html。
  • 复制它并从 ID 值中删除 g_。
  • 在您的页面布局中使用此代码。

Ps:如果 WebPart 按钮在 SharePoint 设计器功能区中被禁用,只需保存页面。这将启用它。

我添加内容编辑器Web部件和脚本编辑器Web部件时设计器生成的代码如下。

<WebPartPages:ContentEditorWebPart webpart="true" runat="server" __WebPartId="{BA190D08-907A-4F94-B8F0-C3966A61E601}">
    <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
        <Title>$Resources:core,ContentEditorWebPartTitle;</Title>
        <Description>$Resources:core,ContentEditorWebPartDescription;</Description>
        <PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge>
        <PartOrder>4</PartOrder>
        <ID>ba190d08_907a_4f94_b8f0_c3966a61e601</ID>
    </WebPart>
</WebPartPages:ContentEditorWebPart>

<WebPartPages:ScriptEditorWebPart runat="server" ChromeType="None" Description="$Resources:core,ScriptEditorWebPartDescription;" 
    ImportErrorMessage="$Resources:core,ImportErrorMessage;" Title="$Resources:core,ScriptEditorWebPartTitle;" 
    __MarkupType="vsattributemarkup" __WebPartId="{1861cebe-9134-4645-8500-13ce8817d416}" WebPart="true" 
    __designer:IsClosed="false" partorder="6" id="1861cebe_9134_4645_8500_13ce8817d416">
</WebPartPages:ScriptEditorWebPart>