Javascript 从SharePoint中的人员或组列表字段检索displayName和电子邮件
我正在查询Javascript 从SharePoint中的人员或组列表字段检索displayName和电子邮件,javascript,sharepoint-2013,Javascript,Sharepoint 2013,我正在查询SPList并检索个人或组字段对象 我想获取DisplayName和Email属性,但我不知道如何获取它们。getter“获取电子邮件()”和“获取显示名称()”在控制台中抛出错误:“不支持的对象属性或方法” 我只需将个人或组对象直接存储在SPList中的变量中即可: var person=found.get_项(“分配的”” 如何获取person.get\u displayName()?我们可以使用字段值。get\u lookupValue()获取用户的显示名称。要获得用户的更多信息
SPList
并检索个人或组
字段对象
我想获取DisplayName
和Email
属性,但我不知道如何获取它们。getter“获取电子邮件()
”和“获取显示名称()
”在控制台中抛出错误:“不支持的对象属性或方法”
我只需将个人或组
对象直接存储在SPList
中的变量中即可:
var person=found.get_项(“分配的”
”
如何获取
person.get\u displayName()
?我们可以使用字段值。get\u 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>
ExecuteOrderLayUntilScriptLoaded(getItemFromList,“sp.js”);
函数getItemFromList(){
var clientContext=new SP.clientContext();
var item=clientContext.get_web().get_lists().getByTitle(“MyTasks”).getItemById(1);
clientContext.load(项);
clientContext.executeQueryAsync(
函数(){
//已成功从列表项中检索到值
var assigned=项目。获取项目(“AssignedTo”);
如果(已分配。长度>0){
var user=clientContext.get_web().ensureUser(已分配[0]。get_lookupValue());
clientContext.load(用户);
clientContext.executeQueryAsync(
函数(){
//已成功确保从用户名中删除用户
var email=user.get_email();
var login=user.get_loginName();
var displayName=user.get_title();
警报(“用户登录名:“+login+”\n用户电子邮件:“+Email+”\n用户显示名:“+displayName”);
},函数(发送方,参数){//出错
警报(args.get_message());
}
);
}
},
函数(发送方,参数){//出错
警报(args.get_message());
}
);
}
在SharePoint 2013中,我建议您使用REST API和jQuery Ajax来实现它。查看下面的文章:
我们可以使用fieldValue.get\u 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>
ExecuteOrderLayUntilScriptLoaded(getItemFromList,“sp.js”);
函数getItemFromList(){
var clientContext=new SP.clientContext();
var item=clientContext.get_web().get_lists().getByTitle(“MyTasks”).getItemById(1);
clientContext.load(项);
clientContext.executeQueryAsync(
函数(){
//已成功从列表项中检索到值
var assigned=项目。获取项目(“AssignedTo”);
如果(已分配。长度>0){
var user=clientContext.get_web().ensureUser(已分配[0]。get_lookupValue());
clientContext.load(用户);
clientContext.executeQueryAsync(
函数(){
//已成功确保从用户名中删除用户
var email=user.get_email();
var login=user.get_loginName();
var displayName=user.get_title();
警报(“用户登录名:“+login+”\n用户电子邮件:“+Email+”\n用户显示名:“+displayName”);
},函数(发送方,参数){//出错
警报(args.get_message());
}
);
}
},
函数(发送方,参数){//出错
警报(args.get_message());
}
);
}
在SharePoint 2013中,我建议您使用REST API和jQuery Ajax来实现它。查看下面的文章:
检查此项,您无法直接获取用户详细信息,您必须使用用户ID检查此项,您无法直接获取用户详细信息,您必须使用用户ID获取。我会将您标记为正确答案,因为我在另一个地方发现了相同的内容,但它不适用于我的工作计划。。。也许网站的配置有问题,不知道……我的工作是使用Object.keys(user)并用键检索email和displayName的值:
var email=user[Object.keys[1]代码>。我必须发出通知单,因为我需要使用提供的解决方案,而不是此解决方案。。jajaI会将你标记为正确答案,因为我在另一个地方发现了相同的东西,但它对我的工作不起作用。。。也许网站的配置有问题,不知道……我的工作是使用Object.keys(user)并用键检索email和displayName的值:var email=user[Object.keys[1]代码>。我必须发出通知单,因为我需要使用提供的解决方案,而不是此解决方案。。贾贾