每篇关于如何做到这一点的文章都略有不同,似乎无法解决这个问题。
我有两个查找字段,它们都出现在我的Listitem
上。我在这里引用了这个列表项。
查找字段值完全相同(它们是指向的不同列表)。因此,如果Human Resources Document Category
具有Test1
作为此值,则它也存在于字段HR Document Category
的查找列表中。
我想要做的是通过CSOM更新字段,以便Human Resources Document Category
说Test1
我想HR Document Category
同时显示Test1
。
foreach (var listitem in listItemCollection)
{
//var boxedListItem = (SPListItem)listitem;
context.Load(listitem, f=>f.DisplayName, f=>f.FieldValuesAsText);
context.ExecuteQuery();
//get reference to lookup field value
var humanResourceDocCategory = "Human_x0020_Resources_x0020_Document_x0020_Category";
FieldLookupValue originalCategoryValue = listitem[humanResourceDocCategory] as FieldLookupValue;
//get ref to HR Document Category
var hrDocCategory = "HR_x0020_Document_x0020_Category";
listitem[hrDocCategory] = originalCategoryValue.LookupId;
//listitem
//listitem.ParseAndSetFieldValue(hrDocCategory, originalCategoryValue.Id);
listitem.Update();
context.ExecuteQuery();
Console.WriteLine();
}
这似乎不起作用。如果我像listitem[hrDocCategory] = listitem[humanResourceDocCategory]
那样进行某些操作,那么它就不会添加值!!
请帮忙。
答案 0 :(得分:0)
originalCategoryValue
已经是FieldLookupValue
对象,因此您应该可以直接将其指定为查找字段的值。
listitem[hrDocCategory] = originalCategoryValue;
如果仍然不起作用,您可能需要验证两个查阅列是否指向同一列表。