从SharePoint中的人员或组列表字段中检索displayName和电子邮件

时间:2018-03-21 16:21:22

标签: javascript sharepoint-2013

我正在查询SPList,并且我正在检索Person or Group字段对象。

我希望获得DisplayNameEmail属性,但我不知道如何获取它们。吸气者" get_email()"和" get_displayName()"在控制台中抛出错误:"Unsupported object property or method"

我只是将Person or Group对象存储在一个直接来自SPList的变量中:

var person = found.get_item( "Assigned" );

如何获得person.get_displayName()

1 个答案:

答案 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>

enter image description here

在SharePoint 2013中,我建议您使用REST API和jQuery Ajax来实现它。查看以下文章:

SharePoint 2013: Get User Details from Person or Group field using REST API