隐藏Sharepoint 2016列表字段基于用户权限

时间:2016-07-28 22:42:01

标签: sharepoint sharepoint-2013

我有sharepoint 2016 List表格。它有一个我们必须根据SharePoint组向用户隐藏的字段。  到目前为止,我的研究表明,编写一个有助于实现这一目标的javascript文件。它还没有奏效。我在NewForm.aspx,EditForm.aspx,NewForm.aspx等上添加了代码 我在SP 2010中也有同样的事情,但似乎2016 Sharepoint的设计方式不同。

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现此目标,这取决于您的约束条件。以下免费软件github代码解决方案在SharePoint 2016上的Prem上以新的,自定义列表的显示和编辑形式对我非常有用。这很容易实现,并且第一次没有问题就可以解决:

您只需要在列表列表中包含jQuery,作者的js文件,然后添加此js片段

$(document).ready(function(){
  ExecuteOrDelayUntilScriptLoaded(function(){
    Lozzi.Fields.hideWithAllowance("Start Date", ["Project Managers"]);
    Lozzi.Fields.hide("% Complete");
    Lozzi.Fields.show("Title");
  },"sp.js");
});

该库中还有其他几个功能,可以使用权限禁用和禁用。

我又走了一步,并使用CSS隐藏了字段,因此即使js不运行,这些字段也仍然被隐藏:

table .ms-formtable > tbody > tr:not(#idAttachmentsRow) 
{
  display:none;
}

但是随后您需要.show()不受权限限制的任何字段,或者使CSS选择器更加精确,这很困难,因为SharePoint将字段名称隐藏在内部HTML注释中,而不是将其放在属性中该行。但这是单独的问题。