PeoplePicker загрузка и сохранение multiuser

Сохранение

SPFieldUserValueCollection usersCollection = new SPFieldUserValueCollection();
foreach (PickerEntity person in users.ResolvedEntities)
{
    SPUser usersUsr = rootWeb.EnsureUser(person.Key) as SPUser;
    usersCollection.Add(new SPFieldUserValue(rootWeb, usersUsr.ID, usersUsr.Name));
}
currentItem["Users"] = usersCollection;

Загрузка

oWeb.AllowUnsafeUpdates = true;

SPFieldUserValueCollection userCollection = (SPFieldUserValueCollection)(currentItem["Users"]);
foreach (SPFieldUserValue person in userCollection)
{
    SPUser usr = person.User;
    PickerEntity entity = new PickerEntity();
    entity.Key = usr.LoginName.ToString();
    entity.DisplayText = usr.Name;
    entity.IsResolved = true;
    users.Entities.Add(entity);
}

oWeb.AllowUnsafeUpdates = false;

Использование

Guid users = currentItem.Fields.GetFieldByInternalName("Users").Id;
string usersValue = currentItem[users].ToString();
SPFieldUserValueCollection userCollection = (SPFieldUserValueCollection)currentItem.Fields[users].GetFieldValue(usersValue);

foreach (SPFieldUserValue value in userCollection)
{    
    SPUser spuserField = properties.Web.EnsureUser(value.User.ToString());
    if (spuserField.Email != null)
    {
        if (spuserField.Email != "")
        {
            SendMessage(spuserField.Email, subject, body.ToString());
        }
    }        
}

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *