2016-04-28 63 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; 

如果仍然不起作用,您可能需要驗證兩個查找列都指向同一個列表。