2011-12-27 2 views
1

Мне нужно изменить SelectionSet для PeopleEditor на codebehind, основываясь на выборе выпадающего списка. Случается, что после того, как он изменился с User на SPGroup, когда я нажимаю «просмотр», я могу без проблем искать группы sharepoint, но когда я добавляю группу и нажимаю «проверять имена», тогда она не разрешает ее, разрешая только пользователей.Изменить SelectionSet управления SharePoint PeopleEditor на codebehind

Код:

<SharePoint:PeopleEditor ID="peDestinatarios" runat="server" AfterCallbackClientScript="updateValidation('peDestinatarios');" 
           MultiSelect="true" SelectionSet="User" class="validate[funcCall[validateEmptyPicker]]" /> 

    protected void ddlType_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (ddlType.SelectedValue == "Users") 
     { 
      peDestinatarios.SelectionSet = "User"; 
     } 
     else if (ddlType.SelectedValue == "Groups") 
     { 
      peDestinatarios.SelectionSet = "SPGroup"; 
     } 

     peDestinatarios.CommaSeparatedAccounts = string.Empty; 
    } 

Любые идеи?

Заранее спасибо

ответ

0

Это может быть глупо, но ваш ddlType был установлен AutoPostBack="true"?

+0

Да, выполняется обратная передача, также похоже, что работа частично работает, поскольку в окне «Обзор» отображаются группы (как и предполагалось), но проверка по-прежнему работает для пользователей. – Escobar5

+0

. Тогда вы, возможно, стали жертвой жизненный цикл страницы и то, как был создан PeopleEditor (в этом он ищет свойство SelectionSet, прежде чем устанавливать его на свой метод обратной передачи), вы можете попытаться снова запустить init/load для элемента управления, но я бы рекомендовал заменить элемент управления от страницы/usercontrol с помощью заполнителя, а затем повторно создавая его целиком на кодовое имя каждый раз, когда тип изменяется, так как вы сбрасываете значение, которое вы должны делать. –

Смежные вопросы