2013-07-17 61 views
2

任何人都可以幫助我從使用javascript的人員列中獲取用戶信息嗎?到目前爲止,我已經能夠讀取列表項並返回一個SP.FieldUserValue,我可以從中獲取一個數字ID(不知道這個ID是什麼)和顯示名稱。例如SharePoint 2013 JSOM用戶密鑰從人員字段

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

如何進一步創建一個sp用戶對象?

最終,我試圖實現的是從列表中檢索細節,然後填充人員編輯器。

回答

0

的人場(實際上稱爲「人員選取器」)有一個特定的JavaScript函數,你可能會發現有用:

有MSDN上的一篇好文: How to: Use the client-side People Picker control in apps for SharePoint

相關的代碼是:

// Get the people picker object from the page. 
var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan; 

// Get information about all users. 
var users = peoplePicker.GetAllUserInfo(); 
var userInfo = ''; 
for (var i = 0; i < users.length; i++) { 
    var user = users[i]; 
    for (var userProperty in user) { 
     userInfo += userProperty + ': ' + user[userProperty] + '<br>'; 
    } 
} 
$('#resolvedUsers').html(userInfo); 

// Get user keys. 
var keys = peoplePicker.GetAllUserKeys(); 
$('#userKeys').html(keys); 

所以基本上你有你的領域轉換爲SPClientPeoplePicker,然後可以使用GetAllUserInfo遍歷所有用戶都在現場。

+0

謝謝,但我認爲你誤解了。我從列表項中檢索人員值,而不是人員選擇器。我已閱讀您列出的文章。 –

+0

我誤解了,但你的代碼,特別是get_lookupValue()應該工作:http://stackoverflow.com/questions/8892999/how-to-read-a-column-type-spuser-datetime-currency-with-ecmascript –

+0

哪裏我很困惑的是,這個查找值返回 SP.FieldUserValue - $ 1A_1:11 $ 2Z_1:「Phillip Hill」 __proto__:Object 如何從中獲取用戶對象,以便我可以例如獲取該用戶的電子郵件地址? 我可以使用它來設置人員選擇器。 我想要做的就是從列表廣告中的某個人列中獲取用戶,並使用此人填充人員選擇器。我明顯錯過了一些明顯的東西。 –

3

好的,我明白了。

這是我的代碼,希望它有助於某人。我沒有包括檢索列表項的方法,只是從那個函數中獲取人的價值的那一行。

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()); 
} 
相關問題