带有用户信息Sharepoint Client C#的添加/更新项目

问题描述 投票:0回答:1

使用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();
sharepoint csom author
1个回答
0
投票

这里是示例代码,供您参考,只需将用户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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.