我正在尝试在列表编辑表单"只读" 中设置人员选择列。我发现许多解决方案适用于SharePoint 2010,但无法为 SharePoint 2013 / Office 365 找到可靠的解决方案。
如果有人能指出我一个好的解决方案,那就太棒了。
答案 0 :(得分:1)
要使用者选择器只读,您可以使用以下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,但它会使表格上的每个人选择器字段只读。所以请让
我知道你是否想要一个特定的专栏。
答案 1 :(得分:0)
由于在SharePoint 2013中用于呈现List Forms,因此引入了基于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
网页部件,然后使用script
代码
就是这样。
<强>结果强> ¨