SharePoint 自定义技巧 – 第 2 部分






4.10/5 (3投票s)
给 SharePoint 开发者的两个技巧 :)
引言
这篇系列文章旨在帮助您快速上手 SharePoint 定制。它涉及修改默认的 SharePoint 用户体验、列表表单定制、品牌化、美化 SharePoint 门户等。在 第 1 部分 中,我们介绍了一个通用函数,可以用于隐藏列表视图工具栏菜单项(例如,新建项目、上传、在网格视图中编辑等)。如果您还没有阅读,我建议您先阅读。在这里,我将向您展示另外两个用于定制列表表单工具栏的技巧。
技巧 #2:隐藏列表表单工具栏菜单项!
有时,您需要从出现在 DispForm.aspx 顶部的工具栏中删除一些项目。不幸的是,"HideCustomAction" 功能只能隐藏通过“自定义操作”功能框架呈现的项目,例如站点操作和站点设置,所以让我们采用与第 1 部分相同的方法,再次深入研究 JavaScript 世界,当涉及到 SharePoint 定制时,我真的觉得它非常方便。
以下函数可用于隐藏 dispform.aspx 中的任何工具栏项目。只需调用该函数,并传递用逗号分隔的项目名称(例如,新建项目、提醒我等)。该函数将删除这些项目,当然,也会删除它们旁边呈现的图像(如果找到)。技巧 #3 将讨论在哪里以及如何将该函数添加到您的列表表单。
hideFormMenuItems("New Item","Alert Me");
function hideFormMenuItems()
{
var titleToHide="";
var anchorTag;
var allAnchorTags = document.getElementsByTagName('a');
for(var i = 0; i < hideFormMenuItems.arguments.length; i++ )
{
titleToHide = hideFormMenuItems.arguments[i];
if(titleToHide!='Alert Me')
{
for (var j = 0; j < allAnchorTags.length; j++)
{
anchorTag= allAnchorTags[j];
if (anchorTag.title.indexOf(titleToHide)!=-1)
{
anchorTag.parentNode.parentNode.parentNode.parentNode.
parentNode.style.display="none";
anchorTag.parentNode.parentNode.parentNode.parentNode.
parentNode.nextSibling.style.display="none";
break;
}
}
}
else
{
for (var k=0; k < allAnchorTags.length;k++)
{
anchorTag= allAnchorTags[k];
if (anchorTag.id.indexOf("SubscribeButton")!=-1)
{
anchorTag.parentNode.parentNode.parentNode.parentNode.
parentNode.style.display="none";
break;
}
}
}
}
var allSpanTags = document.getElementsByTagName("span");
var spanTag;
var toolbarRow;
var lastCell;
for(var m=0; m < allSpanTags.length;m++)
{
spanTag = allSpanTags[m];
if(spanTag.id=='part1')
{
toolbarRow = spanTag.childNodes[2].firstChild.firstChild;
lastCell = toolbarRow.lastChild.previousSibling;
while(lastCell.style.display=='none')
{
lastCell = lastCell.previousSibling;
}
if(lastCell.innerText == '|')
{
lastCell.style.display='none';
break;
}
}
}
请注意,该函数区分大小写,因此请注意工具栏项目名称的大小写。
技巧 #3:通过 CEWP 添加 JavaScript!
内容编辑器 Web 部件允许您在放置它的 Web 部件页面上添加任何有效的 HTML,这当然包括 <script>
元素。使用内容编辑器 Web 部件的主要优点是,任何具有设计者权限的人都可以快速轻松地完成它。
简单易行,让我们开始吧,只需转到站点操作,编辑页面!
编辑页面菜单项在哪里?!! 就像旧版本一样,它不可用,我仍然不确定他们为什么这样做!
技巧 #3:只需将 "&ToolPaneView=2" 附加到 URL,您将在浏览器中以编辑模式打开 DispForm.aspx。
在呈现列表表单的 Web 部件下方添加一个内容编辑器 Web 部件,并插入技巧 #2 的 JavaScript,如下图所示。(最好将内容编辑器 Web 部件标记为隐藏。)
退出编辑模式…
太棒了,我们设法隐藏了“新建项目”和“提醒我”。 那么将“编辑项目”重命名为“编辑程序”并删除“删除项目”但保留小图像 (x) 呢? 这就是我将在下一部分的技巧 #4 中介绍的内容!