设置lookupfield值客户端共享点

时间:2016-04-28 04:01:39

标签: c# .net sharepoint csom

每篇关于如何做到这一点的文章都略有不同,似乎无法解决这个问题。

我有两个查找字段,它们都出现在我的Listitem上。我在这里引用了这个列表项。

查找字段值完全相同(它们是指向的不同列表)。因此,如果Human Resources Document Category具有Test1作为此值,则它也存在于字段HR Document Category的查找列表中。

我想要做的是通过CSOM更新字段,以便Human Resources Document CategoryTest1我想HR Document Category同时显示Test1enter image description here

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]那样进行某些操作,那么它就不会添加值!!

请帮忙。

1 个答案:

答案 0 :(得分:0)

originalCategoryValue已经是FieldLookupValue对象,因此您应该可以直接将其指定为查找字段的值。

listitem[hrDocCategory] = originalCategoryValue;

如果仍然不起作用,您可能需要验证两个查阅列是否指向同一列表。