代码之家  ›  专栏  ›  技术社区  ›  Kirk Liemohn

是否可以计算SharePoint列表项的目标访问群体,或者自动指定?

  •  4
  • Kirk Liemohn  · 技术社区  · 17 年前

    我要向用户显示列表中的目标(筛选)内容。我已经在列表中有了一个基本上具有目标受众价值的列。此字段是一个多选列(复选框输入),对于目标受众,我更喜欢它而不是当前输入字段。

    不幸的是,要使访问群体筛选起作用,我需要为每个列表项填写目标访问群体字段。我目前的计划是使用一个简单的SharePointDesigner工作流基于我的其他字段设置目标访问群体字段,但我想知道是否有更好的方法。我是不是看错了?

    请注意,我知道访问群体也可以用来隐藏/显示Web部件,但这不是我感兴趣的内容。

    3 回复  |  直到 17 年前
        1
  •  0
  •   dahlbyk    17 年前

    我不认为可以将目标访问群体设置为计算字段,在这种情况下,您的选项是工作流或列表项事件接收器。

    要设置访问群体字段值,可以使用 AudienceManager.GetAudienceIDsAsText 加里·拉波因特 post with example usage .

        2
  •  4
  •   Steve Ruiz    17 年前

    你可以试着试一试…

    SPField audienceField = null;
    
    try
    {
        audienceField = list.Fields[Microsoft.SharePoint.Publishing.FieldId.AudienceTargeting]
    }
    catch
    {}
    
    if(audienceField != null)
    {
    try
    {
        Audience siteAudience;
        ServerContext context = ServerContext.GetContext(site);
        AudienceManager audManager = new AudienceManager(context);
        foreach (SPListItem item in list.Items)
        {
          string audienceName = item["fakeAudienceField"]; //should be the audience name created in SSP
          siteAudience = audManager.GetAudience(audienceName);
          Guid id = siteAudience.AudienceID;
          item["Target Audiences"] = id.ToString()+";;;;";
          item.Update();
        }
    }
    catch
    {}
    
        3
  •  0
  •   salgo60    17 年前

    也许可以使用Web部件显示列表的内容,并使用Web部件上的访问群体听起来是一个更容易管理的解决方案…