Sharepoint-2013 用活跃用户部门填写字段
Sharepoint-2013 Fill field with active users department
我有一些代码可以在 SP PeoplePicker 中查找用户和 return 用户的部门。
我想要实现的是自动用当前用户的部门填充一个字段,因为我不需要 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。我正在尝试仅从 Web 视图让它工作。
此外,如果答案需要 AJAX 或 returning 来自 httpget post 的值,请问您是否能详细说明答案,因为我从未使用过 AJAX 之前并且在从网络服务器接收响应方面经验有限。
提前致谢!
您可以使用 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() {
var UserDept = $().SPServices.SPGetCurrentUser({
fieldName: "Department",
debug: false
});
$("input[title*='Department']").val(UserDept); // For assigning to SharePoint column named 'Department'
$("#txtDept").val(UserDept); // For assigning to textbox
});
</script>
我有一些代码可以在 SP PeoplePicker 中查找用户和 return 用户的部门。
我想要实现的是自动用当前用户的部门填充一个字段,因为我不需要 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。我正在尝试仅从 Web 视图让它工作。
此外,如果答案需要 AJAX 或 returning 来自 httpget post 的值,请问您是否能详细说明答案,因为我从未使用过 AJAX 之前并且在从网络服务器接收响应方面经验有限。
提前致谢!
您可以使用 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() {
var UserDept = $().SPServices.SPGetCurrentUser({
fieldName: "Department",
debug: false
});
$("input[title*='Department']").val(UserDept); // For assigning to SharePoint column named 'Department'
$("#txtDept").val(UserDept); // For assigning to textbox
});
</script>