2011-09-01 19 views
0

我有一個SPList這是觀衆意識,我需要解析它的觀衆從SPListItem如何從列表項中分析觀衆

string Audiences; 

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

我已經到此爲止了。我一直在尋找如何解析每個觀衆,但我找不到多少幫助。

有人知道這樣做嗎?

回答

0
this artical

它應該是這樣的

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();

+0

謝謝,我想我可以管理一個答案! –

+0

世界上是什麼36?這對我來說不是一個靈活的解決方案 – Roman

0

當您需要第一個觀衆時,這很有用。隨着我啓發,做這樣的事情的線條,這應該讓我一個數組與所有的觀衆:

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

}

然後通過迭代的GUID來獲取觀衆。

,因爲它是這裏所描述牢記觀衆目標的sintax:http://www.sharepoint-tips.com/2011/01/setting-target-audiences-with-code.html

我測試後確認以後。

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())); 

這樣,如果串變化的格式,在GetAudiencEIDsFromText在API的變化將隨之演變。