How to Insert Update Taxonomy Fields (Multi Value) in SharePoint 2013 Programmatically

Sathish Nadarajan
Solution Architect
December 14, 2015
Rate this article
[Total: 0    Average: 0/5]

In the earlier articles, we saw many interesting facts about the Taxonomy Fields. In this article, let us see how to Insert, Update Taxonomy Field Programmatically using C#.

There are two types we need to consider. One is single value Taxonomy Field and the other is Multi Value Taxonomy Field.

Let us see how to insert a Single Value Taxonomy Field.

 SPListItem navigationListItem = navigationList.Items.Add();
                     SPField spfldTerm = navigationListItem.Fields.TryGetFieldByStaticName(<<StaticName of the Taxonomy Field>>);
                     TaxonomyField txfldTerm = (TaxonomyField)spfldTerm;
                     TaxonomyFieldValue taxonomyValue = new TaxonomyFieldValue(txfldTerm);
                     taxonomyValue.TermGuid = <<Term GUID>>.ToString();
                     taxonomyValue.Label = <<Term Name>>.Name;
                     navigationListItem[txfldTerm.Id] = taxonomyValue;
                     navigationListItem[txfldTerm.TextField] = taxonomyValue;

On the above code snippet, the Term GUID and Term Name will be the ID and Name of the Term.

Now, let us see how to insert a Multi Value Taxonomy Field. There is no much difference between insert and updating the Taxonomy field.

The Insert of Multi Value Taxonomy Field is as follows.

 for(int i=0; $i < arrayCount; $i++)
             TaxonomyFieldValue GeoTagSecondaryFieldValue = new Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue(GeoTagSecondaryField)
             GeoTagSecondaryFieldValue.TermGuid = array[$i]
             GeoTagSecondaryFieldValue.Label = array[$i]
         GeoTagSecondaryField.SetFieldValue(newItem, GeoTagSecondaryFieldValueCollection) ;

The same can be done using the PowerShell as well.

 #Single Value :
 $newItem = $list.Items.Add()
         $BookShelvesField = [Microsoft.SharePoint.Taxonomy.TaxonomyField]$newItem.Fields["BookShelf"]
         $BookShelvesFieldValue = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($BookShelvesField)
         $BookShelvesFieldValue.TermGuid = $_.BookShelveTermGUID
         $BookShelvesFieldValue.Label = $_.BookShelveTermLabel
         $BookShelvesField.SetFieldValue($newItem, $BookShelvesFieldValue) 
 #And the Multi Value is like
 $GeoTagSecondaryCount = $GeoTagSecondaryTermIDArray.Length
          for($i=0; $i -lt $GeoTagSecondaryCount; $i++)
             write-host $GeoTagSecondaryTermIDArray[$i]
             $GeoTagSecondaryFieldValue = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($GeoTagSecondaryField)
             $GeoTagSecondaryFieldValue.TermGuid = $GeoTagSecondaryTermIDArray[$i]
             $GeoTagSecondaryFieldValue.Label = $GeoTagSecondaryTermLabelArray[$i]
         $GeoTagSecondaryField.SetFieldValue($newItem, $GeoTagSecondaryFieldValueCollection)

Happy Coding,

Sathish Nadarajan.

Author Info

Sathish Nadarajan
Solution Architect
Rate this article
[Total: 0    Average: 0/5]
Sathish is a Microsoft MVP for SharePoint (Office Servers and Services) having 13+ years of experience in Microsoft Technologies. He holds a Masters Degree in Computer Aided Design and Business more

Leave a comment