我正在查询SPList
,并且我正在检索Person or Group
字段对象。
我希望获得DisplayName
和Email
属性,但我不知道如何获取它们。吸气者" get_email()
"和" get_displayName()
"在控制台中抛出错误:"Unsupported object property or method"
我只是将Person or Group
对象存储在一个直接来自SPList
的变量中:
var person = found.get_item( "Assigned
" );
如何获得person.get_displayName()
?
答案 0 :(得分:3)
我们可以使用 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