我在页面上有一个人员选择器和标签,一旦我确保用户在 Active Directory 中可用,我需要将用户的电子邮件地址绑定到标签控件。需要在哪里编写此代码?它应该在 PageLoad() 事件处理程序中吗?
问问题
5360 次
2 回答
2
是的,您可以像这样访问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 是您所在的当前 web 的一个实例(您也可以使用SPContext.Current.Web的 web )。
当您在人员选择器中输入用户名并按 Enter 时,不会触发特定事件,但是您可以将 AutoPostback 属性设置为 true,然后触发可以通过 Page_Load 处理的通用回发...
在您的标记中定义 PeoplePicker,如下所示:
<SharePoint:PeopleEditor AutoPostBack="true" ID="peUser" runat="server" />
在 Page_Load 中,您只需检查人员选择器是否拥有一个(或多个,取决于)具有 Accounts 属性的帐户,然后执行您的任务......
希望这可以帮助
于 2011-11-17T08:28:41.693 回答
0
如果您想要的只是电子邮件地址,这应该可以:
if (pectrl.ResolvedEntities.Count > 0)
{
PickerEntity pe = (PickerEntity)pectrl.ResolvedEntities[0];
string email = pe.EntityData[PeopleEditorEntityDataKeys.Email].ToString();
}
于 2015-04-28T00:57:19.963 回答