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

Posted

技术标签:

【中文标题】如何将 SharePoint 2013 webparts 直接嵌入 aspx 布局页面作为该布局的默认 webparts【英文标题】:How to embed SharePoint 2013 webparts directly in aspx layout page as default webparts for that layout 【发布时间】:2015-09-22 14:55:56 【问题描述】:

我正在使用 SharePoint 2013,并且有一个自定义母版页和几个 aspx 布局页面,所有这些页面都将被复制到站点设置中的“母版页和页面布局”部分。

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

我实际上想要做的是将“默认”webparts 嵌入到页面布局中,这样当为特定页面选择此布局时,它已经添加了 webparts。

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

非常感谢任何建议。

【问题讨论】:

【参考方案1】:

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

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

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

下面是我添加内容编辑器Webpart和脚本编辑器Webpart时设计器生成的代码。

<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>

【讨论】:

感谢您的回答。棘手的是它需要 SharePoint Designer,因为我在 Apple Mac 上工作(是的......)但我可以使用 Virtual Box 并进入我的 Windows VM。我今晚试试,谢谢。 是的,刚试了下,在文档库webpart上找ID字段的时间有点长,但是成功了!有用;当我将页面布局应用于新页面时,文档库 webpart 存在,并显示正确的库。现在仔细检查每个页面可以有不同的库“视图”。谢谢。设置为已接受的答案和 +1。 奇怪的是 g_ 从 ID 中删除然后就是这样。 @Ebbz,你知道那是做什么的吗?仅用于背景信息/学习。 啊,由于某种原因,它确实弄乱了我的利润。现在所有文本都与左侧齐平:( 带有 g_ 的 id 通常由 SharePoint Designer 生成...有时这会导致问题,因为 SharePoint 认为此 Web 部件是由 Designer 添加的(即使它位于页面布局内)。跨度>

以上是关于如何将 SharePoint 2013 webparts 直接嵌入 aspx 布局页面作为该布局的默认 webparts的主要内容,如果未能解决你的问题,请参考以下文章

sharepoint 2013/2016/2007 如何确定一个SharePoint列表的ID

SharePoint 2013 安装配置(3-1)

SHAREPOINT 2013: 如何测试升级

通过Powershell在SharePoint Online上添加日历Web部件

以编程方式从 .Webpart 文件导入 WebForm 网站中的 asp.net webPart(不是 sharePoint 项目)

如何将控件添加到 Web 部件(SharePoint、C#)?