יום שני, 10 ביוני 2013

Get values from Taxonomy field in SharePoint 2013

Hello,
To get a value(s) from Taxonomy field in SharePoint 2013 can be achieved like that:

The example is being used in an Event Receiver

SPListItem newPage = properties.ListItem;
SPField seoKeywords = newPage.Fields.GetFieldByInternalName(CommonConsts.SEO.SeoKeywords);
SPField keywordTags = newPage.Fields.GetFieldByInternalName(CommonConsts.SiteColumns.KeywordTagsName);
List seoKeywordsValues = new List();
if (newPage[seoKeywords.Id] != null)
{
seoKeywordsValues = new List(newPage[seoKeywords.Id].ToString().Split(';'));
}

TaxonomyFieldValueCollection keywordTagsValues = newPage.ListItems[0][keywordTags.Id] as TaxonomyFieldValueCollection;
            
 foreach (TaxonomyFieldValue item in keywordTagsValues)
{
      if (seoKeywordsValues.IndexOf(item.Label) == -1)
      seoKeywordsValues.Add(item.Label);
}

newPage[seoKeywords.Id] = string.Join(",", seoKeywordsValues.ToArray());

 newPage.SystemUpdate();