2017-05-04 1 views
0

SP PeoplePicker에서 사용자를 조회하고 사용자 부서를 반환하는 코드가 있습니다.Sharepoint-2013 활성 사용자 부서의 채우기 필드

필자가 원하는 것은 peoplepicker 필드가 필요 없기 때문에 자동으로 현재 사용자 부서의 필드를 채우는 것입니다. 현재 사용자 데이터를 검색 할 수 있어야하거나 peoplepicker 필드가 없어도 peoplepicker를 검색 할 수 있어야합니다.

그래서, 난 콘텐츠 편집기에 다음 스크립트를 추가

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/2014.02/jquery.SPServices-2014.02.min.js"></script> 

<script> 
    $(document).ready(function() 
    { 
     var PeoplePicker = $("div[title='test_column']"); 
     var PeoplePickerTopId = PeoplePicker.attr('id'); 
     var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[PeoplePickerTopId]; 

     ppobject.OnValueChangedClientScript = function(elementId, userInfo){getUserData()};  
    }); 

    function getUserData() 
    { 
     //Set variables 
     var UserDept; 
     var i; 
     var _PeoplePicker = $("div[title='test_column']"); 
     var _PeoplePickerTopId = _PeoplePicker.attr('id'); 
     var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[_PeoplePickerTopId]; 

     // Call GetAllUserInfo to read PeoplePicker entries 
     editorsInfo = ppobject.GetAllUserInfo(); 

     // Set Customer Info 
     if(editorNames!= null) 
      {UserDept = editorsInfo[0].EntityData.Department;} 

     $("input[title='Department']").val(UserDept) 
    } 
</script> 

참고, 내가 셰어 포인트 디자이너에 액세스 할 수 없습니다. 이 작업을 웹보기에서만 수행하려고합니다.

또한 대답에 AJAX가 필요하거나 httpget 게시물에서 값을 반환해야하는 경우 이전에 AJAX를 사용 해본 적이 없으므로 답변을 철저히 검토하고 웹 서버로부터 응답을받는 데 제한된 경험을 할 수 있습니까?

미리 감사드립니다.

답변

1

SPServices Jquery를 사용할 수 있습니다. 최신 버전을 다운로드하십시오. Sharepoint 2013을 사용 중이므로 내용 편집기 대신 스크립트 편집기를 사용하십시오. 다음은 정기적으로 사용하는 스크립트이며 잘 작동합니다.

<script type="text/javascript" src="/your path to JS/SiteAssets/JS/jquery-3.1.1.js"></script> 
 
<script type="text/jscript" src="/your path to JS/SiteAssets/JS/jquery.SPServices.min.js"></script> 
 

 
<script type="text/javascript"> 
 

 
$(document).ready(function() { \t 
 

 
\t var UserDept = $().SPServices.SPGetCurrentUser({ 
 
\t fieldName: "Department", \t 
 
\t debug: false 
 
\t }); \t 
 
\t 
 

 
\t $("input[title*='Department']").val(UserDept); // For assigning to SharePoint column named 'Department' 
 

 
\t $("#txtDept").val(UserDept); // For assigning to textbox 
 

 

 
}); 
 

 
</script>

+0

딱! 매력처럼 일 했어요, 정말 고마워요! – penfold1992

+0

환영 @ @ penfold1992 – Sniper