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);

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


Поделиться

Коментарии