Setting value of type Person or Group

Hi there - I have two list item objects sourceItem and targetItem belongs to  two task lists (Source and Target). Both have AssignedTo field of type Person or a group. When I am setting 

targetItem["AssignedTo"] = sourceItem["AssignedTo"]    ---Didn't work

Then I tried

    SPFieldUserValueCollection users = (SPFieldUserValueCollection)sourceItem["AssignedTo"];
    targetItem["AssignedTo"] = users;       

Also, didn't work; The target item is showing blank in the AssignedTo field.

Please advise if I am doing anything wrong? 

Regards,

July 20th, 2015 5:46pm

Try the following

SPFieldUser assignedto = sourceList.Fields["AssignedTo"] as SPFieldUser;
SPFieldUserValue user = assignedto.GetFieldValue(sourceItem["AssignedTo"].ToString());
targetItem["AssignedTo"] = user;      

Free Windows Admin Tool Kit Click here and download it now
July 21st, 2015 1:04am

Thanks Prassath but this didn't work either. I debug  sourceList.Fields["AssignedTo"] has value but variable assignedto is coming null. 

When I do 

SPFieldUserValueCollection users = (SPFieldUserValueCollection)sourceItem["AssignedTo"];
targetItem["AssignedTo"] = (SPFieldUserValueCollection)users;   

targetItem["AssignedTo"] is showing value in debug but not saving it. 

Regards,

July 21st, 2015 12:32pm

Prasath - This did work!! I had to get the SPuser.


                        if (Sitem[SPBuiltInFieldId.AssignedTo] != null) //considering blank
                        { 
                            SPFieldUserValueCollection users = (SPFieldUserValueCollection) Sitem[SPBuiltInFieldId.AssignedTo];

                             SPFieldUserValueCollection tusers = new SPFieldUserValueCollection();
                            int i = 0;

                            foreach(SPFieldUserValue fuv in users ) //Considering Multi-users
                            {
                             string username = ((SPFieldUserValueCollection)Sitem[SPBuiltInFieldId.AssignedTo])[i].User.LoginName;
                             SPUser user = web.EnsureUser(username);
                             SPFieldUserValue assignTo = new SPFieldUserValue(web, user.ID, user.Name);
                             tusers.Add( assignTo);
                             i++;
                            }
                           tItem["AssignedTo"] = tusers;
                         }

Thanks,

Free Windows Admin Tool Kit Click here and download it now
July 21st, 2015 5:58pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics