[英]Setting lookupfield value client-side sharepoint
关于如何执行此操作的每篇文章都略有不同,似乎无法弄清楚。
我的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]
那么它不会增加值!
请帮忙。
originalCategoryValue
已经是一个FieldLookupValue
对象,因此您应该能够直接将其分配为您的查找字段的值。
listitem[hrDocCategory] = originalCategoryValue;
如果那仍然不起作用,则可能需要验证两个查找列都指向同一列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.