谁能帮助我使用javascript从人员列中获取用户信息?到目前为止,我已经能够读取列表项并返回一个SP.FieldUserValue,从中我可以获得一个数字ID(不确定此ID是什么)和显示名称。例如

var ManVal  = oListItem.get_item("RecruitingManager").get_lookupValue();
var ManId   = oListItem.get_item("RecruitingManager").get_lookupId();


如何进一步执行此步骤来创建sp用户对象?

最终,我想要实现的是从列表中检索详细信息,然后填充人员编辑器。

最佳答案

好的,我知道了。

这是我的代码,希望对您有所帮助。我没有包括检索列表项的方法,仅包括从该函数中获取人的价值的那一行。

var _lineManager;

var lineManager = oListItem.get_item("RecruitingManager").get_lookupId();

_lineManager = oWebsite.getUserById(lineManager);

getLineManager();

function getLineManager() {
    context.load(_lineManager);
    context.executeQueryAsync(onGetUserNameSuccessLM, onGetUserNameFailLM);
}
function onGetUserNameSuccessLM() {
    alert(lineManager.get_title());

    var schema = {};
    schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
    schema['SearchPrincipalSource'] = 15;
    schema['ResolvePrincipalSource'] = 15;
    schema['AllowMultipleValues'] = false;
    schema['MaximumEntitySuggestions'] = 50;
    schema['Width'] = '280px';

    var users = new Array(1);
    var defaultUser = new Object();
    defaultUser.AutoFillDisplayText = lineManager.get_title();
    defaultUser.AutoFillKey = lineManager.get_loginName();
    defaultUser.Description = lineManager.get_email();
    defaultUser.DisplayText = lineManager.get_title();
    defaultUser.EntityType = "User";
    defaultUser.IsResolved = true;
    defaultUser.Key = lineManager.get_loginName();
    defaultUser.Resolved = true;
    users[0] = defaultUser;

    SPClientPeoplePicker_InitStandaloneControlWrapper('peoplePickerDivLinMan', users, schema);

}

function onGetUserNameFailLM(sender, args) {
    alert('Failed to get user name. Error:' + args.get_message());
}

关于javascript - 人员字段中的SharePoint 2013 JSOM用户 key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17693335/

10-13 06:12