2017-05-04 29 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> 

注意,我沒有訪問SharePoint Designer中。我試圖從網絡視圖中獲得這個工作。

此外,如果答案需要AJAX或從httpget帖子返回值,那麼請您詳細解答,因爲我以前從未使用過AJAX,並且從Web服務器接收響應的經驗有限。

在此先感謝!

回答

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

相關問題