谁能帮助我使用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/