månadsarkiv: december 2014

Update multi-value lookup column values in SharePoint 2010 using managed CSOM

Anatoly Mironov:

Reblogging this useful code sample for updating multi-value lookup columns using CSOM in C# in SharePoint 2010, but also valid for SharePoint 2013.

Originally posted on Bin's Dev Notes:

I received a task that needs to update multi-value lookup column value in SharerePoint 2010 using C#.  While it is easy to set columns of simple data types, with lookup column it is a bit more complicated.  Searching Web gives me following link which is helpful. However, that only works with single value column.   After a bit trial and error, I worked out following code that is functioning.

1

public void UpdateLookup(string siteUrl, int id, string lookupColumnName,

List multiLookupValues, string listName, string lookupListName)

{

using (ClientContext ctx = new ClientContext(siteUrl))

{

ctx.Credentials = new NetworkCredential(_username, _password, _domain);

var list = ctx.Web.Lists.GetByTitle(listName);

var item = list.GetItemById(id);

var lookUpList = ctx.Web.Lists.GetByTitle(lookupListName);

CamlQuery query = new CamlQuery();

query.ViewXml = CreateCaml(multiLookupValues);

var items = lookUpList.GetItems(query);

ctx.Load(item, i => i[lookupColumnName]);

ctx.Load(items);

ctx.ExecuteQuery();

var lookupValues = new ArrayList();

FieldLookupValue[] values = item[lookupColumnName] as FieldLookupValue[];

foreach (ListItem listItem in items)

{

var lookupValue = new FieldLookupValue { LookupId = listItem.Id };

lookupValues.Add(lookupValue);

}

item.ParseAndSetFieldValue(lookupColumnName…

View original 49 more words