0

我有一个SPList观众意识,我需要从SPListItem.

string Audiences;

public Class1(SPListItem item)
{
  this.Audiences = item[FieldId.AudienceTargeting] as string;
} 

到目前为止,我已经做到了这一点。我一直在寻找如何从项目中解析每个观众,但我找不到太多帮助。

有人知道这样做吗?

4

3 回答 3

1

我认为从列表中检索受众定位内容的正确方法是执行以下操作。

string audString = item[fieldId.AudienceTargeting] as string;
string[] audienceIds;
string[] distinguishedNames;
string[] spGroups;
AudienceManager manager = new AudienceManager();
AudienceManager.GetAudienceIDsFromText(audienceAsText, out audienceIds, out distinguishedNames, out spGroups);
var namesList = manager.GetAudienceNames(new ArrayList(globalAudienceID.Select(id => new Guid(id)).ToList()));

这样如果字符串的格式发生变化,GetAudienceEIDsFromText 中 api 的变化也会随之变化。

于 2012-06-07T20:06:15.037 回答
0

这篇文章来看应该是这样的

public Class1(SPListItem item)
{
     string ID = item[FieldId.AudienceTargeting] as string;
     string NewID = ID.Remove(36);
     Guid guid = new Guid(NewID);
     Audience siteAudience = audManager.GetAudience(guid);
} 

然后可能是 siteAudience.GetMembership();

于 2011-09-01T16:33:14.330 回答
0

当您想要第一个受众时,这很有用。有了这些台词,我受到启发去做这样的事情,这应该让我拥有所有观众的阵列:

public Class1(SPListItem item)
{
    string ID = item[FieldId.AudienceTargeting] as string;
    string audiences = audienceTargeting.Split(';')[0];
    String[] audiencesArray = audiences.split(',');

}

然后迭代以通过指南吸引观众。

请记住此处描述的受众目标的语法:http: //www.sharepoint-tips.com/2011/01/setting-target-audiences-with-code.html

我稍后会在测试后确认。

于 2011-09-02T09:15:11.667 回答