Как получить адрес электронной почты из элемента управления «Выбор людей» после вызова EnsureUser в SharePoint? - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть одно средство выбора людей и ярлык на странице, и как только я гарантирую, что пользователь доступен в Active Directory, мне нужно привязать адрес электронной почты пользователя к элементу управления ярлыком.Где будет написан код для этого?Должен ли он быть в обработчике событий PageLoad ()?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

да, вы можете получить доступ к объекту SPUser (который содержит свойство email ) следующим образом:

var accountName = peoplePicker.Accounts[0];

//this will create a new account on SharePoint if a user with the given accountName does not exist
var user = web.EnsureUser(accountName); 

lblEmail = user.Email;

peoplePicker, очевидно, является элементом управления выбора людей,web является экземпляром текущего веб-сайта, в котором вы находитесь (вы можете использовать веб-страницу SPContext.Current.Web также).

Нет определенного события, которое срабатывает при вводеимя пользователя в окне выбора людей и нажмите клавишу ввода, однако вы можете установить для свойства AutoPostback значение true, после чего будет запущена общая обратная передача, которую вы можете обработать с помощью Page_Load ...

Определите PeoplePicker в вашей разметке следующим образом:

<SharePoint:PeopleEditor AutoPostBack="true" ID="peUser" runat="server" />

В Page_Load вы просто проверяете, имеет ли средство выбора людей одну (или более, зависимую) учетную запись со свойством Accounts, и затем выполняете свою задачу ...

надеюсь, что это поможет

0 голосов
/ 28 апреля 2015

Если вам нужен только адрес электронной почты, это должно работать:

if (pectrl.ResolvedEntities.Count > 0)
{
    PickerEntity pe = (PickerEntity)pectrl.ResolvedEntities[0];
    string email = pe.EntityData[PeopleEditorEntityDataKeys.Email].ToString();
}
...