每一篇关于如何做到这一点的文章都略有不同,似乎无法弄清楚这一点。
我有两个查找字段,它们都存在于我的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]这样做,那么它不会添加值!!
请帮帮忙。
发布于 2016-04-28 22:29:30
originalCategoryValue已经是一个FieldLookupValue对象,因此您应该能够直接将其指定为您的查找字段的值。
listitem[hrDocCategory] = originalCategoryValue;如果这仍然不起作用,您可能需要验证两个查阅列是否指向相同的列表。
https://stackoverflow.com/questions/36905009
复制相似问题