Sharepoint 10列表:希望限制每个用户组的表单字段

时间:2012-01-12 20:41:47

标签: sharepoint-2010

我正在使用SharePoint 10列表功能创建服务请求故障单系统。我想在完成表单时隐藏最终用户的一些表单字段,但希望管理员查看所有表单字段。一个例子是隐藏最终用户的“Assigned To:”表单字段。不知道该怎么做。提前谢谢。

6 个答案:

答案 0 :(得分:3)

下载JQuerySPServices库并将它们放在只读文档库或14个Hive中,以适合您的方式。然后编辑列表的NewForm.aspx(使用SP Designer)并添加对这两个文件的引用。

使用以下内容添加脚本标记:

$(document).ready(function() {
    Admin_Group = "My Group Name";
    if(IsGroupMember(Admin_Group))
    {
        $('input[title="Assigned To"]').parent().parent().css("display","none");
    }
});


function IsGroupMember(GroupName)
{
    var isGroupMember = false;
    $().SPServices({
            operation: "GetGroupCollectionFromUser",
            userLoginName: $().SPServices.SPGetCurrentUser(),
            async: false,
            completefunc: function(xData, Status) {
              if($(xData.responseXML).find("Group[Name='" + GroupName + "']").length == 1)                
              {
                  isGroupMember = true;
              }
            }
    });
    return isGroupMember;
}

您可能需要检查输入选择器是否正确访问了您需要隐藏的分配区域或哪个区域,但我在许多情况下都使用此方法成功。确保隐藏的字段不是必填字段。还记得在EditForm.aspx中隐藏它,如果这就是你需要的东西。

答案 1 :(得分:1)

您可以通过在SharePoint设计器或InfoPath中编辑视图/编辑表单来完成此操作,但是您需要了解XSLT或InfoPath的相关知识才能执行这些操作。 对于InfoPath,请参阅: http://blog.symprogress.com/2011/05/infopath-list-form-hidedisable-fields-based-on-sharepoint-group-membership/

或者,您可以使用Visual Studio为所需的每个元素创建自定义Web部件。

或者你可以使用这样的产品,这是迄今为止最简单的方法: http://store.bamboosolutions.com/sharepoint-column-level-security.aspx

答案 2 :(得分:0)

我知道你可以创建列表视图,它基本上是来自MVC模式的视图,可以代表列表的内容。在你的情况下,管理员票据列表视图和TI票证列表视图。您应该在列表视图上搜索sharepoint。希望这会有所帮助。

答案 3 :(得分:0)

我必须在我的组织中完成同样的事情,我们正在构建一个帮助台系统。用户只需要一些字段,如主题,描述,截止日期,其中帮助台人员有很多字段,包括笔记,分配给等等。

最简单的方法是为列表创建自定义NewForm.aspx。

您可以在SharePoint设计器中执行此操作,方法是复制现有的NewForm.aspx,将自定义列表表单插入到页面中,将现有的Visible属性设置为false,然后删除不希望您的信息行用户看。

然后,只需将NewForm_Trimmed.aspx应用为默认的New Form,那就应该这样做。

编辑:SharePoint Designer 2010使此过程更容易...请点击此链接: http://office.microsoft.com/en-us/sharepoint-designer-help/create-a-custom-list-form-using-sharepoint-designer-HA010378258.aspx

答案 4 :(得分:0)

我们使用Sharepoint Forms Designer工具。它允许为不同的sharepoint组创建特定的表单。

答案 5 :(得分:0)

我的回答与保罗相似,但结构略有不同。我们在列表表单上有相同的要求,但在我们的例子中,我们隐藏了基于组成员身份的某些元素。您需要执行以下操作:

  • 在母版页或编辑表单中添加对jQuery和SPServices的引用。我们在我们的环境中使用母版页选项。
  • 理想情况下,为列表创建新的自定义编辑表单并将其设为默认值。如果你可以帮助修改香草形式,通常不是一个好主意。
  • 在SharePoint Designer中打开编辑表单,并将以下脚本添加到其中:



$(document).ready(function() {
  $().SPServices({
    operation: “GetGroupCollectionFromUser”,
    userLoginName: $().SPServices.SPGetCurrentUser(),
    async: false,
    completefunc: function(xData, Status) {
      if ($(xData.responseXML).find(“Group[Name = ’Engineering’]”).length == 1) {
        // alert(“You shouldnt see the button.”);
        $(“input[id = ’AcctBtn’]”).hide();
      }
    }
  });
});




在您的情况下,您实际上想要做相反的事情 - 默认情况下隐藏特定字段,然后在用户组中显示它们。只需复制要修改的每个元素的中间行(隐藏输入字段)。这样,您可以轻松地在表单上为给定SharePoint组中的用户显示或隐藏多个元素。

相关问题