使用Microsoft.Sharepoint.CLient和.Runtime.dll版本16.0.0.0
我有一个带有跟踪号(标题),描述(currier),MailTo(类型:人员,显示字段:电子邮件的项目列表(丢失的包裹)>)我也有另一个可用的用户列表(购买者),可以从
中提取因此,从我的C#客户端程序中,我想使用用户的MailTo -Email-添加或更新Lost包中的项目。现在,我只能将Name作为ListItem的Author的字符串来获取。如何从ListItem获取用户信息,以便可以将MailTo更改为特定用户
public Package(ListItem _package) {
this.item = _package;
if (this.item != null) {
this.exist = true;
this.id = this.item["ID"].ToString();
this.trackNo = (String)this.item["Title"];
this.currier = (String)this.item["Description"];
this.status = (String)this.item["Status"];
FieldUserValue userAuthor = (FieldUserValue)this.item["Author"];
this.Owner = userAuthor.LookupValue.ToString();
这里是示例代码,供您参考,只需将用户ID设置为FieldUserValue类,然后设置为MailTo字段:
ClientContext clientContext = new ClientContext("http://sp/sites/dev");
Web web = clientContext.Web;
Microsoft.SharePoint.Client.List spList = clientContext.Web.Lists.GetByTitle("JerryList4");
clientContext.Load(spList);
clientContext.ExecuteQuery();
ListItem item = spList.GetItemById(3);
clientContext.Load(item);
clientContext.ExecuteQuery();
FieldUserValue userValue = new FieldUserValue();
userValue.LookupId = 19; //set user Id here
item["MailTo"] = userValue;
item.Update();
clientContext.ExecuteQuery();
对于用户标识,您可以从此Rest EndPoint获取它:
http://siteurl/_api/web/siteusers?$select=Id,LoginName