Js 获得SharePoint2013 指定的people Picker 全部用户信息

Js 获得SharePoint2013 指定的用户信息

HTML部分:
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
    <SharePoint:ScriptLink name="clienttemplates.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="clientforms.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="clientpeoplepicker.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="autofill.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="sp.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="sp.runtime.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <SharePoint:ScriptLink name="sp.core.js" runat="server" LoadAfterUI="true" Localizable="false" />
    <script type="text/javascript" src="https://xxx.com.cn/Style%20Library/js/PeopleTest.js"></script>    

    <div id="peoplePickerDiv"></div>
    <div>
        <br/>
        <input type="button" value="Get User Info" οnclick="getUserInfo()"></input>
        <br/>
        <h1>User info:</h1>
        <p id="resolvedUsers"></p>
        <h1>User keys:</h1>
        <p id="userKeys"></p> 
        <h1>User ID:</h1>
        <p id="userId"></p>
    </div>
</asp:Content>

JS 代码部分
 根据需要生产一个控件,代码很代表性所以保留。
$(document).ready(function () {
    initializePeoplePicker('peoplePickerDiv');
});

function initializePeoplePicker(peoplePickerElementId) {
    var schema = {};
    //创建一个控件,类型是 'User,DL,SecGroup,SPGroup';
    schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
    schema['SearchPrincipalSource'] = 15;
    schema['ResolvePrincipalSource'] = 15;
    schema['AllowMultipleValues'] = true;
    schema['MaximumEntitySuggestions'] = 50;
    schema['Width'] = '280px';
    this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema);
}
<pre name="code" class="javascript">function getUserInfo() {
    // 从页面获得people Picker 对象(录入框)第一种方法仅仅适合页面上的第一个或页面上仅仅有一个的情况下. 
     //var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan;
     
     //根据peoplePicker 获得用户信息 July 19,2016
     var controlName ="分配对象";
            var peoplePickerDiv = $("[id$='ClientPeoplePicker'][title='" + controlName + "']");
            var peoplePickerEditor = peoplePickerDiv.find("[title='" + controlName + "']");
            var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerDiv[0].id];
    // Get information about all users.
    var users = peoplePicker.GetAllUserInfo();
    var userInfo = '';
    //这里的循环是获得User 信息的所有属性。   
    //for (var i = 0; i < users.length; i++) {
    //    var user = users[i];
    //    for (var userProperty in user) { 
    //        userInfo += userProperty + ':  ' + user[userProperty] + '<br>';
    //    }
    //}
      //修改代码获得邮件和用户全称,看上面的代码得出这是一个二维数组, 段传涛 2016 07
    for(var j = 0; j < users.length; j++)  //没有foreach 不爽
    {   //这里先把二维变变成一维数组 
        var GetUser = users[j];
         //顺利获得值
        var UAutoFillTitleText=GetUser["AutoFillTitleText"]
        var FillTitle= UAutoFillTitleText.split("\n")
        if	(FillTitle.length>=3)
        {
         var Uemail=FillTitle[0];
         var fulllogo=FillTitle[2];
            userInfo += "Email:  " + Uemail + ':  LogoName:  ' + fulllogo + '<br>';
         }
        else
        {
        userInfo="检查AD用户信息是否包含邮件信息";
        }
        //var UKey=GetUser["Key"]
        //var UDescription=GetUser["Description"]
       }
    $('#resolvedUsers').html(userInfo);

    //获得所有用户Key
    //var keys = peoplePicker.GetAllUserKeys();
    // $('#userKeys').html(keys);
    // getUserId(users[0].Key);
}
<pre name="code" class="javascript">// Get the user ID.
function getUserId(loginName) {
    var context = new SP.ClientContext.get_current();
    this.user = context.get_web().ensureUser(loginName);
    context.load(this.user);
    context.executeQueryAsync(
         Function.createDelegate(null, ensureUserSuccess), 
         Function.createDelegate(null, onFail)
    );
}
function ensureUserSuccess() {
    $('#userId').html(this.user.get_id());
}
function onFail(sender, args) {
    alert('Query failed. Error: ' + args.get_message());
}


 
 
 User info 所有内容 
AutoFillDisplayText:"段传涛"
AutoFillKey:"i:0#.w|proj\ac.duanchuantao"
AutoFillSubDisplayText:""
AutoFillTitleText:"chuantao.duan@xxxxx.com?Active Directory?PROJ\ac.duanchuantao"
Description:"PROJ\ac.duanchuantao"
DisplayText:"段传涛"
DomainText:"xx.xxx.com.cn"
EntityData:Object
EntityType:"User"
IsResolved:true
Key:"i:0#.w|proj\ac.duanchuantao"
MultipleMatches:Array[0]
ProviderDisplayName:"Active Directory"
ProviderName:"AD"
Resolved:true


运行效果


非循环执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值