Quantcast
Channel: SharePoint 2010 - Development and Programming forum
Viewing all articles
Browse latest Browse all 11571

Updating managed Metadata field programatically

$
0
0

Hi,

I have a custom list in which I have a managed metadata column. I want to update the field programatically without asking the user to enter the value for that column.

So I am using an event receiver for itemadding

SPSite CurrentSite = properties.OpenSite();

           SPList TargetList = properties.List;

           //Get the taxonomy field we want to insert to.
           TaxonomyField EditField = (TaxonomyField)TargetList.Fields["Marketing Research"];
           //Start a taxonomy session
           TaxonomySession taxonomySession = new TaxonomySession(CurrentSite);
           TermStore Store = taxonomySession.TermStores["Managed Metadata Service"];
           Group group = Store.Groups["Site Collection - hdl-pcs470202-9224-sites-Japan"];
           TermSet termSet = group.TermSets["Marketing Research"];
           TermCollection terms = termSet.Terms;
           foreach (var term in terms)
           {
               if (term.Name == "Research-Projects")
               {
                   string TermGuid = Convert.ToString(term.Id);
                   Guid TermID = new Guid(TermGuid);
                   Term ToAddTerm = termSet.GetTerm(TermID);
                   EventFiringEnabled = false;
                   EditField.SetFieldValue(properties.ListItem, ToAddTerm);

                   //In order for the user not to get the error message that the document already been updated on upload.
                   properties.ListItem.SystemUpdate(false);
                   EventFiringEnabled = true;
               }
           }

But this is generating "value doesnot fall within a range" error.

This is an urgent requirement. Please suggest me with some solution.

Thanks in Advance.


Viewing all articles
Browse latest Browse all 11571

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>