SharePoint 2010 WebPart 个性化布局
Posted
技术标签:
【中文标题】SharePoint 2010 WebPart 个性化布局【英文标题】:SharePoint 2010 WebPart Personalize Layout 【发布时间】:2011-10-30 23:31:33 【问题描述】:我在 Intranet 上有一个主页。它有超过 15 个 web 部件(新闻、天气等)。我希望允许用户通过移动 web 部件或删除它们来自定义页面。目前我不让他们看到顶部的功能区,因此他们无权访问“编辑页面”按钮。我已经把它从功能区拉出来了
<a unselectable="on" href="javascript:;" onclick="return false;" class="ms-cui-ctl-large" aria-describedby="Ribbon.WebPartPage.Edit.Edit.Menu.Actions.Edit_ToolTip" mscui:controltype="Button" role="button" style="height: auto;" id="Ribbon.WebPartPage.Edit.Edit-SelectedItem">
<span unselectable="on" class="ms-cui-ctl-largeIconContainer">
<span unselectable="on" class=" ms-cui-img-32by32 ms-cui-img-cont-float">
<img unselectable="on" src="/_layouts/1033/images/formatmap32x32.png" style="top: -160px; left: -96px;">
</span>
</span>
<span unselectable="on" class="ms-cui-ctl-largelabel" style="height: auto;">Edit<span unselectable="on">
</span>Page</span>
</a>
不幸的是,它不起作用。有什么想法吗?
我也会对“停止编辑”按钮做同样的事情。
【问题讨论】:
【参考方案1】:根据这个帖子:http://artykul8.com/2011/03/useful-sharepoint-shortcuts/
诀窍是使用MSOLayout_ToggleLayoutMode();
javascript 函数。
根据同一页面中的评论,在 SP2010 中,该 javascript 功能仅在页面中已有 Web 部件时可用。 我观察到的行为与这个不同,因为对我而言,此功能仅在页面已处于编辑模式时才有效(即使页面没有添加 Web 部件也有效)。
我能够找到定义该函数的 javascript 文件,即 ie55up.js。您可以通过以下方式将其加载到您的母版页中:
<SharePoint:ScriptLink language="javascript" name="ie55up.js" OnDemand="false" runat="server" />
有关如何构建使用该 javascript 函数的 Web 控件的信息,请参阅此处:http://www.codeproject.com/KB/sharepoint/SwitchWPMode.aspx
希望对你有帮助
【讨论】:
感谢您的回复。我找到了相同的 javascript,但这是对整个页面的编辑,而不是个性化页面。【参考方案2】:我终于找到了这个问题的答案。 JS调用确定后就很简单了。我相信这应该只适用于 webpart 页面。
通过 Javascript 调用将页面置于个性化编辑模式:
ChangeLayoutMode(true); // how simple is that??
通过 Javascript 调用停止页面编辑:
MSOLayout_ToggleLayoutMode(); // same as given in the other post
我认为“停止”编辑模式对于所有页面都是相同的,无论是个性化页面、所有 webpart 页面等。
【讨论】:
以上是关于SharePoint 2010 WebPart 个性化布局的主要内容,如果未能解决你的问题,请参考以下文章
从一个 webpart 访问信息并在 sharepoint 2010 中的另一个 webpart 中使用它
在 C# 中创建 Sharepoint 2010 Webpart 页面
Visual Studio 2010 未生成 SharePoint 2010 WebPart .g.cs 文件