将WebPart添加到SharePoint 2013母版页

时间:2013-09-17 22:30:53

标签: sharepoint master-pages sharepoint-2013 content-query-web-part

在这里看了很多,但这是我第一次提出问题,所以请耐心等待。

在我的SharePoint网站集中,我有一个指向业务中其他系统的链接列表 - 除了管理员之外,所有用户都隐藏此列表。有一个部门列,指示每个链接所属的部门。此列表中有两个过滤列 - 一个是“活动”,另一个是“在系统链接中显示”。

在每个部门页面上,都有一个按查询内容的Web部件(CQWP)显示列表,过滤显示: - 特定部门链接 - 仅限活动

另外,网站集的主页上还有另一个CQWP,显示所有那些已在“系统链接中显示”的链接。

这允许我做的是,如果由于某种原因系统离线进行维护,我可以更改列表中的“活动”值,并且所有链接都将消失(阻止用户进入外部系统)。它还允许我在主页的链接上添加突出显示,如果它特别关注那一天/周/月(即如果有一个假期截止日期,则链接到人力资源系统以预订)。

我想要做的是将主页系统链接CQWP移动到左侧的快速链接下,以便它们出现在每个页面上。我在2010年没有遇到任何问题,只是在主页的视觉视图中拖放,但似乎在2013年挣扎。

我试过按照这里的建议:

http://ramisharepointblog.blogspot.co.uk/2013/01/how-to-add-custom-webpart-within.html

当我将这些文件添加到.html主文件时,我收到一条错误消息,说我需要将我的HTML文件的文件扩展名更改为其他文件。

我是否收到此消息,无论是复制和粘贴代码,还是使用“插入Web部件”按钮。 (显然在SPD 2013中这样做)

当我这样做时,似乎失去了对.master文件的引用(或者爆炸!) 作为替代方案,我尝试将代码添加到.master文件中,但当然我不能这样做,因为它不会让我移动/编辑/复制.master文件。

任何有关这方面的帮助都会受到很多赞赏,因为我似乎正在撞墙挡住我的头。

2 个答案:

答案 0 :(得分:1)

SharePoint 2013 上,您无法以与2010年相同的方式将Web部件添加到母版页。
请使用Design Manager - > Snippet Gallery

简而言之:
您必须使用Register注册代码<!--SPM:包裹-->标记 像这样:

<!--SPM:<%@Register Tagprefix="Publishing" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>-->

您应该使用以下代码包裹Web部件的开始标记:<!--MS:标记-->
结束标记为:<!--ME:标记-->
Web部件看起来像这样:

<!--MS:<asp:SiteMapDataSource ShowStartingNode="True" SiteMapProvider="SPNavigationProvider" ID="topSiteMap" runat="server" StartingNodeUrl="sid:1002">-->
…
<!--ME:</asp:SiteMapDataSource>-->

(代码段库会自动以正确的方式创建代码,您可以将其复制到母版页。)

答案 1 :(得分:0)

可能与我的问题有关,请看一下这里给出的详细答案:How to embed SharePoint 2013 webparts directly in aspx layout page as default webparts for that layout

我知道这是一个老问题,但是用户会受到鼓励搜索,这就是出现的问题,所以我想我会帮助其他用户找到答案:P