从 SharePoint 中的人员或组列表字段中检索显示名称和电子邮件
Retrieve displayName and email from person or group list field in SharePoint
我正在查询 SPList
并且正在检索 Person or Group
字段对象。
我想获取 DisplayName
和 Email
属性,但我不知道如何获取它们。 Getters“get_email()
”和“get_displayName()
”在控制台中抛出错误:"Unsupported object property or method"
我只是通过将 Person or Group
对象存储在直接来自 SPList
:
的变量中来获得它
var person = found.get_item( "Assigned
" );
如何获得person.get_displayName()
?
我们可以使用fieldValue.get_lookupValue()来获取用户的显示名称。要获取用户的更多信息,我们可以使用 web.ensureUser() 方法。
以下代码供您参考:
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getItemFromList, "sp.js");
function getItemFromList(){
var clientContext = new SP.ClientContext();
var item = clientContext.get_web().get_lists().getByTitle("MyTasks").getItemById(1);
clientContext.load(item);
clientContext.executeQueryAsync(
function(){
// successfully retrieved value from list item
var assigned = item.get_item("AssignedTo");
if(assigned.length>0){
var user = clientContext.get_web().ensureUser(assigned[0].get_lookupValue());
clientContext.load(user);
clientContext.executeQueryAsync(
function(){
// successfully ensured user from user name
var email = user.get_email();
var login = user.get_loginName();
var displayName = user.get_title();
alert("User LoginName: " + login + "\nUser Email: " + email + "\nUser Display Name: " + displayName);
},function(sender,args){ // on error
alert(args.get_message());
}
);
}
},
function(sender,args){ // on error
alert(args.get_message());
}
);
}
</script>
在 SharePoint 2013 中,我建议您使用 REST API 和 jQuery Ajax 来实现它。查看以下文章:
SharePoint 2013: Get User Details from Person or Group field using REST API
我正在查询 SPList
并且正在检索 Person or Group
字段对象。
我想获取 DisplayName
和 Email
属性,但我不知道如何获取它们。 Getters“get_email()
”和“get_displayName()
”在控制台中抛出错误:"Unsupported object property or method"
我只是通过将 Person or Group
对象存储在直接来自 SPList
:
var person = found.get_item( "Assigned
" );
如何获得person.get_displayName()
?
我们可以使用fieldValue.get_lookupValue()来获取用户的显示名称。要获取用户的更多信息,我们可以使用 web.ensureUser() 方法。
以下代码供您参考:
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getItemFromList, "sp.js");
function getItemFromList(){
var clientContext = new SP.ClientContext();
var item = clientContext.get_web().get_lists().getByTitle("MyTasks").getItemById(1);
clientContext.load(item);
clientContext.executeQueryAsync(
function(){
// successfully retrieved value from list item
var assigned = item.get_item("AssignedTo");
if(assigned.length>0){
var user = clientContext.get_web().ensureUser(assigned[0].get_lookupValue());
clientContext.load(user);
clientContext.executeQueryAsync(
function(){
// successfully ensured user from user name
var email = user.get_email();
var login = user.get_loginName();
var displayName = user.get_title();
alert("User LoginName: " + login + "\nUser Email: " + email + "\nUser Display Name: " + displayName);
},function(sender,args){ // on error
alert(args.get_message());
}
);
}
},
function(sender,args){ // on error
alert(args.get_message());
}
);
}
</script>
在 SharePoint 2013 中,我建议您使用 REST API 和 jQuery Ajax 来实现它。查看以下文章:
SharePoint 2013: Get User Details from Person or Group field using REST API