2016-04-28 28 views
0

每篇关于如何做到这一点的文章都略有不同,似乎无法弄清楚。设置查阅字段值客户端共享点

我有两个查找字段,都出现在我的Listitem。我在这里参考了列表项目。

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

我想要做的是通过CSOM更新字段,所以如果Human Resources Document CategoryTest1我想要HR Document Category也显示Test1以及。 enter 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]那样做一些修改,它不会增加值!

请帮忙。

回答

0

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

listitem[hrDocCategory] = originalCategoryValue; 

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