【问题标题】:How to make People Picker column Read only in SharePoint 2013如何在 SharePoint 2013 中将人员选取器列设为只读
【发布时间】:2015-06-29 19:12:28
【问题描述】:

我正在尝试在我的列表编辑表单“只读”中设置人员选择器列。我找到了许多适用于 SharePoint 2010 的解决方案,但找不到适用于 SharePoint 2013/Office 365 的可靠解决方案。

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

【问题讨论】:

    标签: sharepoint-2013 office365


    【解决方案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,但它会使表单上的每个人选择器字段只读。所以请让

    我知道你是否想要特定的专栏。

    【讨论】:

      【解决方案2】:

      由于在用于呈现列表表单的 SharePoint 2013 中引入了基于 JavaScript/HTML 的新客户端呈现引擎(称为 CSR),因此我建议采用以下方法。自定义编辑表单,以便使用显示模式在编辑表单中呈现人员选取器,如下所述。

      步骤

      1) 创建一个 JavaScript 模板,用于在显示模式下呈现 People Picker:

      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 标记将其括起来插入指定的模板

      就是这样。

      结果 ¨

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-24
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 2016-10-18
        相关资源
        最近更新 更多