如何创建人员选取器列只读在SharePoint 2013中

时间:2015-06-18 10:48:19

标签: sharepoint-2013 office365

我正在尝试在列表编辑表单"只读" 中设置人员选择列。我发现许多解决方案适用于SharePoint 2010,但无法为 SharePoint 2013 / Office 365 找到可靠的解决方案。

如果有人能指出我一个好的解决方案,那就太棒了。

2 个答案:

答案 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代码

将其封闭,插入指定的模板

就是这样。

<强>结果 ¨ enter image description here