首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JS设置当前用户的peoplepicker默认值

用JS设置当前用户的peoplepicker默认值
EN

Stack Overflow用户
提问于 2012-08-29 08:56:22
回答 2查看 12.2K关注 0票数 1

我正在使用SharePointServices3.0,并创建了一个自定义列表表单。在这种形式下,我有一个peoplepicker字段,需要在默认情况下将其设置为当前用户。

到目前为止,这就是我所得到的:

  • 首先,我的人民喜欢: 函数PeoplePicker(){ this.context = null;this.web = null;this.currentUser = null;this.parentTagId = null this.SetParentTagId = function(id){ this.parentTagId = id;} this.SetLoggedInUser = function(){ if(this.parentTagId != null){ this.getWebUserData();}} this.getWebUserData = function(){ this.context =新SP.ClientContext.get_current();this.web = this.context.get_web();this.context.executeQueryAsync(Function.createDelegate(this,this.currentUser = this.web.get_currentUser();this.currentUser.retrieve();this.context.load(this.web);this.web this.onSuccessMethod),Function.createDelegate(this,this.onFailureMethod);} this.onSuccessMethod = function(){ this.setDefaultValue(this.currentUser.get_title());} this.onFailureMethod = function(){告警(“请求失败”+ args.get_message() +‘n’+ args.get_stackTrace());} this.setDefaultValue =函数(值){ var parentTag = document.getElementById(this.parentTagId);如果(parentTag != null) { var peoplePickerTag = this.getTagFromIdentifierAndTitle(parentTag,'div','UserField_upLevelDiv','People Picker');if (peoplePickerTag) { peoplePickerTag.innerHTML =值;}} this.getTagFromIdentifierAndTitle =函数(parentElement,tagName,标识符,标题){ var len = identifier.length;var标签= parentElement.getElementsByTagName(tagName);for (var i= 0;i< tags.length;i++) { var tempString = tagsi.id;if (tagsi.title == title &(标识符“== tempString.indexOf(标识符) == tempString.length -len)”){返回标签;}返回空;} }
  • 其次,我在asp内容中使用它的方式:

ExecuteOrDelayUntilScriptLoaded(SetWebUserData, "PeoplePicker.js"); 函数SetWebUserData() { var pplPicker =新的PeoplePicker();//设置选择器人员的父标记id。pplPicker.SetParentTagId('ctl00_PlaceHolderMain_g_ec44fef5_c1a6_4ade_b7e4_2b80803724a1_ff6_1_ctl00_ctl00_UserField');pplPicker.SetLoggedInUser();}

但是,当我使用错误的父标记ID加载form...Am时,什么都不会发生?我从页面的源代码里拿出来的.

任何帮助都会很好!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-31 15:17:35

我就是这样做的。

代码语言:javascript
复制
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript"> 
$(window).load(function(){
var columnName = 'Manager Name';   
var searchText = RegExp("FieldName=\"" + columnName + "\"", "gi");
$("td.ms-formbody").each(function() {  
if(searchText.test($(this).html())) {  
$(this).find("div[Title='People Picker']").html(getUserName());  
return false;  
}  
});
function getUserName() { 
var wshell=new ActiveXObject("wscript.shell"); 
var userName=wshell.ExpandEnvironmentStrings("%username%");  
return userName;}   
});
</script>

“我的人员选择器”字段名为“Manager Name”,但它是一个变量,因此您可以更改它。我使用函数getUserName()来设置人员选择器的值。getUserName使用环境字符串用户名。有些人会告诉你,这不是最好的东西使用,因为它可以‘伪造’。我所处的企业环境是严格控制的。就我个人而言,我认为大多数用户甚至不会知道如何做到这一点。

我认为您所拥有的问题是人们选择字段所需要的价值,而不仅仅是字符串。我相信它正在寻找一个键值对,这意味着您需要在SharePoint站点中分配的用户名和ID号。为了解决这个问题,我使用的代码只是将用户名刺放在html表单字段中。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2012-11-01 07:20:07

下面是我是如何实现的,这里我将用户名作为一个查询字符串传递,如果不是用当前用户填充的话。根据您的需要进行修改。

代码语言:javascript
复制
        var Dname = queryString('DName'); 
        if(Dname!= null)
        {       
            var pp = getPickerInputElement('Employee');
            if(pp != null)
            {
                pp.innerHTML =Dname;
                document.getElementById('Emp').innerHTML=Dname;
            }
        }
        else
        {   
            fillPeoplePickerWithCurrentUser('Employee');
        }   
function fillPeoplePickerWithCurrentUser(pickerName)
    {
        var currentUser =getUserData();
    }
function getUserData() 
    {   
        context = new SP.ClientContext.get_current();             
        web = context.get_web(); 
        currentUser = web.get_currentUser(); 

        currentUser.retrieve(); 
        context.load(web);
        context.executeQueryAsync(onSuccessMethod, onFaiureMethodl);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12174181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档