Link blog.vitalyzhukov.ru

Блог переехал вот сюда: Blog.VitalyZhukov.ru

15 апр. 2011 г.

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

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



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


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


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


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

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

2 комментария:

  1. ты лучше расскажи про
    PeopleEditor и
    Namespace prefix 'xsd' is not defined. )))

    народ тут голову ломает http://social.msdn.microsoft.com/Forums/pl-PL/sharepoint2010general/thread/90b3835c-6754-4bb6-9fd4-b74f16f236ff

    ОтветитьУдалить
  2. Eugene, я целый день просидел, нашел в чем дело и придумал как решить проблему. Решение напишу здесь: http://blog.vitalyzhukov.ru 1 февраля

    ОтветитьУдалить