SharePoint 2010. PeopleEditor. Установка значения

Что делаем

Задаем программно значения для SharePoint'овского контрола PeopleEditor

Смотрим

Берем reflector и смотрим исходный код контрола. Находим свойство CommaSeparatedAccounts. Исходя из названия свойства делаем выводы о том, что надо всего лишь указать значения через запятую и восхититься простой использования данного контрола.

Пробуем

Запускаем приложение и видим, что не работает контрол, так как мы хотим. Выясняется, что это свойство работает только для одного значения. Те, кто работает с SharePoint'ом не первый год вряд ли удивляться этому и полезут искать дальше

Делаем

Чтобы PeopleEditor умел принимать значения программно, надо "запихнуть" их в ArrayList и только потом скормить их контролу. Примерно вот так:

  1. var al = new ArrayList();
  2. foreach (var user in [СписокЮзеров]) //Здесь нужны только LoginName или Name
  3. {
  4.   al.Add(new PickerEntity { Key = user.LoginName, IsResolved = true });
  5. }
  6. [НашПиплЕдитор].UpdateEntities(al);

Теперь все работает. Наслаждаемся...

Виталий Жуков

Виталий Жуков

SharePoint архитектор, разработчик, тренер, Microsoft MVP (Office Development). Более 15 лет опыта работы с SharePoint, Dynamics CRM, Office 365, и другими продуктами и сервисами Microsoft.

Смотрите также

EntityFramework. Оптимистические блокировки

EntityFramework. Оптимистические блокировки

Linq to Sharepoint. Особенности

Linq to Sharepoint. Особенности

SharePoint 2010. Настройка входящей почты для кастомного списка

SharePoint 2010. Настройка входящей почты для кастомного списка

Linq to SharePoint. Особенности. Часть 2

Linq to SharePoint. Особенности. Часть 2

Linq to SharePoint. Особенности. Часть 3

Linq to SharePoint. Особенности. Часть 3