如何在 SharePoint 2013 中将人员选取器列设置为只读
How to make People Picker column Read only in SharePoint 2013
我正在尝试在我的列表编辑表单 "Read-only" 中创建 人员选择器列 。我找到了许多适用于 SharePoint 2010 的解决方案,但找不到适用于 SharePoint 2013/Office 365.
的可靠解决方案
如果有人能指出我一个好的解决方案,那就太好了。
要使人员选择器只读,您可以使用以下 JQuery 代码:
$(".sp-peoplepicker-delImage").css({ 'display' : 'none'});
$(".sp-peoplepicker-editorInput").css({ 'display' : 'none'});
您也可以在 css 的帮助下应用它们:
<style>
.sp-peoplepicker-delImage{
display:none;
}
.sp-peoplepicker-editorInput{
display:none;
}
</style>
这是使人员选择器字段在 SharePoint 中只读的最简单和最快的方法
2013/online,但它会使表单上的每个人员选择器字段变为只读。所以请让
我知道您是否需要特定的专栏。
由于在 SharePoint 2013 中引入了一个基于 JavaScript/HTML 的新客户端呈现引擎(称为 CSR
)来呈现列表表单,因此我推荐以下方法。自定义编辑表单以便使用显示模式在编辑表单中呈现人员选取器,如下所述。
步骤
1) 创建一个 JavaScript 模板以在显示模式下呈现人物选择器:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
"AssignedTo": {
EditForm: renderAssignedTo
}
}
}
});
});
function renderAssignedTo(ctx) {
var item = ctx['CurrentItem'];
var userField = item[ctx.CurrentFieldSchema.Name];
var fieldValue = "";
for (var i = 0; i < userField.length; i++) {
fieldValue += userField[i].EntityData.SPUserID + SPClientTemplates.Utility.UserLookupDelimitString + userField[i].DisplayText;
if ((i + 1) != userField.length) {
fieldValue += SPClientTemplates.Utility.UserLookupDelimitString
}
}
ctx["CurrentFieldValue"] = fieldValue;
return SPFieldUserMulti_Display(ctx);
}
2)在编辑模式下打开编辑表单页面
3)在页面上放置 Script Editor
web 部件,并通过使用 script
标记
将其括起来插入指定的模板
就是这样。
结果
¨
我正在尝试在我的列表编辑表单 "Read-only" 中创建 人员选择器列 。我找到了许多适用于 SharePoint 2010 的解决方案,但找不到适用于 SharePoint 2013/Office 365.
的可靠解决方案如果有人能指出我一个好的解决方案,那就太好了。
要使人员选择器只读,您可以使用以下 JQuery 代码:
$(".sp-peoplepicker-delImage").css({ 'display' : 'none'});
$(".sp-peoplepicker-editorInput").css({ 'display' : 'none'});
您也可以在 css 的帮助下应用它们:
<style>
.sp-peoplepicker-delImage{
display:none;
}
.sp-peoplepicker-editorInput{
display:none;
}
</style>
这是使人员选择器字段在 SharePoint 中只读的最简单和最快的方法
2013/online,但它会使表单上的每个人员选择器字段变为只读。所以请让
我知道您是否需要特定的专栏。
由于在 SharePoint 2013 中引入了一个基于 JavaScript/HTML 的新客户端呈现引擎(称为 CSR
)来呈现列表表单,因此我推荐以下方法。自定义编辑表单以便使用显示模式在编辑表单中呈现人员选取器,如下所述。
步骤
1) 创建一个 JavaScript 模板以在显示模式下呈现人物选择器:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
"AssignedTo": {
EditForm: renderAssignedTo
}
}
}
});
});
function renderAssignedTo(ctx) {
var item = ctx['CurrentItem'];
var userField = item[ctx.CurrentFieldSchema.Name];
var fieldValue = "";
for (var i = 0; i < userField.length; i++) {
fieldValue += userField[i].EntityData.SPUserID + SPClientTemplates.Utility.UserLookupDelimitString + userField[i].DisplayText;
if ((i + 1) != userField.length) {
fieldValue += SPClientTemplates.Utility.UserLookupDelimitString
}
}
ctx["CurrentFieldValue"] = fieldValue;
return SPFieldUserMulti_Display(ctx);
}
2)在编辑模式下打开编辑表单页面
3)在页面上放置 Script Editor
web 部件,并通过使用 script
标记
就是这样。
结果
¨