以下是相同的问题和描述如何重现它: http://www.endusersharepoint.com/STP/viewtopic.php?f=10&t=2027
是否有人为此找到了解决方案或真正的解决方法?
//编辑:我找到了一个“解决方案”。功能区与“实际”webpart连接。单击列表(以设置焦点)并再次显示选项卡:D
答案 0 :(得分:13)
当您将Web部件添加到标准列表视图时,该页面不再被归类为列表视图页面,而是被归类为应用程序页面。
这意味着您丢失了功能区菜单以及面包屑中的视图选择器。
<强>更新强>
您可以在以下位置查看隐藏视图选择器的代码:
Microsoft.SharePoint.WebControls.ListTitleViewSelectorMenu.SingleWebPartPresentOnPage
但我似乎无法找到隐藏功能区的代码。
<强>更新强>
好的,我认为这样可行,使用以下代码添加内容编辑器网页部件:
<script>
setTimeout(function() {
var elem = document.getElementById("MSOZoneCell_WebPartWPQ2");
if(elem != null) {
var dummyevent = new Array();
dummyevent["target"] = elem;
dummyevent["srcElement"] = elem;
WpClick(dummyevent);
}
}, 2000);
</script>
将MSOZoneCell_WebPartWPQ2 id替换为列表视图Web部件的Web部件区域单元格。
答案 1 :(得分:8)
这对我有用,但它从选择的文档选项卡开始,我更喜欢选择默认的浏览选项卡,所以我只是在代码中添加了一个简单的行,重新选择默认选项卡:
<script>
setTimeout(function() {
var elem = document.getElementById("MSOZoneCell_WebPartWPQ2");
if(elem != null) {
var dummyevent = new Array();
dummyevent["target"] = elem;
dummyevent["srcElement"] = elem;
WpClick(dummyevent);
_ribbonStartInit("Ribbon.Browse", true)
}
}, 2000);
</script>
答案 2 :(得分:5)
在调试器中大量浏览SharePoint JS之后,我终于找到了一种方法来防止出现此问题。
在SharePoint 2010中:
//Set focus on our list web part
var webPart = document.getElementById('WebPartWPQ1');
WpClick({target: webPart});
//Prevent it from losing focus
SP.Ribbon.WebPartComponent.$3_1.deselectWebPartAndZone = function() { };
在SharePoint 2013 Beta中:
//Set focus on our list web part
var webPart = document.getElementById('MSOZoneCell_WebPartWPQ2');
WpClick({target: webPart});
//Prevent it from losing focus
SP.Ribbon.WebPartComponent.$3.deselectWebPartAndZone = function() { };
注意:这是超级hacky,并且不受Microsoft支持(因此很可能在将来的版本中更改,甚至可能在SharePoint 2013的RTM中更改)。
另外,请注意您的网络部件ID可能会有所不同,因此您应该仔细检查是否将焦点放在正确的网络部件上。
说明:它基本上覆盖了SP.Ribbon.WebPartComponent
取消选择Web部件的能力的实例。据我所知,$ 3 / $ 3_1属性存储了对SP.Ribbon.WebPartComponent
实例的引用。
如果有人知道更好的方式来访问除$ 3 / $ 3_1属性之外的SP.Ribbon.WebPartComponent
实例,请大胆说明,因为这会使这种方法更加健壮。
答案 3 :(得分:4)
点击列表(设置焦点)解决了“问题”;)