В этой статье я расскажу, как можно заполнять текущего
пользователя в поле PeoplePicker
Для этого нам понадобятся две функции:
1. Получает текущего пользователя
1. Получает текущего пользователя
2. Меняет значение в поле PeoplePicker
конечный резульрат
код решения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <script type= "text/javascript" src= "/tasks/Style Library/js/jquery-1.12.4.min.js" ></script> <script type= "text/javascript" > function setPPUser(fieldId) { //debugger if (SP.ClientContext != null ) { SP.SOD.executeOrDelayUntilScriptLoaded(getCurrentUser, 'sp.js' ); } else { SP.SOD.executeFunc( 'clientpeoplepicker.js' , 'SP.ClientContext' , function (){ SP.SOD.executeFunc( 'sp.js' , '' , getCurrentUser); }); } var currentUser; function getCurrentUser() { var context = new SP.ClientContext.get_current(); var web = context.get_web(); currentUser = web.get_currentUser(); context.load(currentUser); context.executeQueryAsync(onSuccessMethod, onRequestFail); } function onSuccessMethod(sender, args) { var account = currentUser.get_loginName(); var currentUserAccount = account.substring(account.indexOf( "|" ) + 1); // заполение поля SetPeoplePickerValue(fieldId, currentUserAccount ) ; } function onRequestFail(sender, args) { console.log( 'request failed' + args.get_message() + '\n' + args.get_stackTrace()); } }; function SetPeoplePickerValue(fieldId, userName) { var peoplePickerDiv = $( "[id^='" +fieldId+ "_']" ) var peoplePickerEditor = $( "input[id^='" + fieldId + "']" ); var spPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerDiv[0].id]; jQuery( "[id ^='" +fieldId+ "_] a.sp-peoplepicker-delImage" ).click(); peoplePickerEditor.val(userName); spPeoplePicker.AddUnresolvedUserFromEditor( true ); }; _spBodyOnLoadFunctionNames.push( "WorkingWithFields" ); function WorkingWithFields() { setPPUser( "User" ); } </script> |
Комментариев нет:
Отправить комментарий