SharePoint 定制技巧 – 第 3 部分






4.20/5 (4投票s)
技巧 #4:重命名列表表单工具栏项!
引言
这系列文章旨在帮助您快速上手 SharePoint 定制。它涉及修改默认 SharePoint 用户体验、列表表单定制、品牌化、SharePoint 门户的皮肤设置等。
在 第一部分 中,我介绍了一个通用的函数,您可以使用它来隐藏列表视图工具栏菜单项(例如,新建项目、上传、网格视图中编辑等)。在 第二部分 中,我向您展示了如何从列表表单工具栏中删除项目。如果您还没有阅读这两篇文章,我建议您先阅读它们 (http://www.ayman-elhattab.blogspot.com)。
在发布前几篇文章后,我收到了很多来自 SharePoint 用户的邮件,询问如何重命名列表表单工具栏中的项目。因此,我决定撰写本系列文章的第三部分。在完成文章并拍摄一些截图后,另一位 SharePoint 用户在 MSDN 论坛上询问是否可以删除文本,同时保留图像,例如删除“删除项目”同时保留其旁边的 (X) 图标。今天,我将向您展示如何使用 JavaScript 完成这两项任务。
让我们开始吧!
技巧 #4:重命名列表表单工具栏项目!
有时,您需要重命名 DispForm.aspx 顶部呈现的工具栏中的某些项目,以匹配列表名称。例如,您有一个名为“Programs”(课程)的自定义列表,用于存储大学提供的课程。最好使用“新建课程”而不是默认的“新建项目”,以及“编辑课程”而不是“编辑项目”。有时,您只需要完全删除文本,只留下带有工具提示的图像,该工具提示解释了单击它们时执行的操作。
以前
操作后
以下函数可以用来实现这两项任务,只需调用该函数并传递项目的旧名称和新名称即可。例如,如果您需要将“添加项目”重命名为“添加课程”,请使用 renameFormMenuItems("添加项目","添加课程");
。如果您需要删除文本并保留图像,请将空字符串作为新名称传递给函数,如下所示:renameFormMenuItems("删除项目","");
。
renameFormMenuItems("New Item","New Program");
renameFormMenuItems("Edit Item","Edit Program");
renameFormMenuItems("Delete Item","");
function renameFormMenuItems(oldName,newName)
{
var anchorTag;
var allAnchorTags = document.getElementsByTagName('a');
if(oldName.length!=0)
{
for (var j = 0; j < allAnchorTags.length; j++)
{
anchorTag= allAnchorTags[j];
if (anchorTag.innerText.indexOf(oldName)!=-1)
{
anchorTag.innerText=newName;
try
{
if(newName.length!=0)
{
anchorTag.parentNode.previousSibling.firstChild.
firstChild.alt=newName;
}
else
{
anchorTag.parentNode.previousSibling.firstChild.
firstChild.alt=oldName;
}
}
catch(err)
{
}
}
}
}
}
请注意,该函数区分大小写,因此“New Item”(新建项目)有效,而“nEw iTeM”无效。
简单易懂,不是吗?
现在,一个问题浮出水面,我们如何使用这个函数?答案是 内容编辑器 Web 部件;有关更多信息,请参阅上一篇文章中的 技巧 #3。
隐藏整个工具栏呢?

有很多解决方案涉及使用 SharePoint Designer 取消“幽灵化”页面,但我不太喜欢这些解决方案!再次强调,让我们使用 JavaScript 来执行此任务。我在 zip 文件中包含了两个函数,一个用于重命名工具栏项目,另一个用于完全隐藏工具栏!期待您的反馈。
历史
- 2009年1月31日:初始发布