Skip to main content

How to get lookup value(username) from people picker column using JavaScript(Client Object Model)?



Recently I faced an issue on fetching username from people picker column.

Below is the code which can be used in such scenarios-

// JavaScript source code

function getUsers() {
//Get the current client context
ctx = new SP.ClientContext(webUrl);
// Get Web
web = ctx.get_web();
// Get List
list = web.get_lists().getByTitle("My List");
camlQry = new SP.CamlQuery();
//Traverse through all files and folders deep and get some people picker fields like "Author"
camlQry.set_viewXml('<View Scope=\'RecursiveAll\'>' +
'<Query>' +
'<ViewFields>' +
'<FieldRef Name=\'' + colValuesEnum.Title + '\' />' +
'<FieldRef Name=\'' + colValuesEnum.Author + '\' />' +
'</ViewFields> ' +
'</View>');
listItem = list.getItems(camlQry);
ctx.load(listItem);
ctx.executeQueryAsync(success, failed);
}

//Success CallBack Function
function InProgRevReqSucceeded(sender, args) {
var enumerator = listItem.getEnumerator();
while (enumerator.moveNext()) {
var _User = "";
if (listItem.get_item(colValuesEnum.Author) !== 'undefined' && listItem.get_item(colValuesEnum.Author) !== null) {
    if (listItem.get_item(colValuesEnum.Author).length > 0) {
// If there is a single value/user
if (listItem.get_item(colValuesEnum.Author).length == 1) {
_User = listItem.get_item(colValuesEnum.Author)[0].get_lookupValue();
}
// If there are more than one values in the people picker column, I am splitting them with a semi-colon
if (listItem.get_item(colValuesEnum.Author).length > 1) {
for (var i = 0; i < listItem.get_item(colValuesEnum.Author).length; i++) {
_User = _User + listItem.get_item(colValuesEnum.Author)[i].get_lookupValue() + ";";
}
_User.trim;
}
}
}
}
}
//Failed CallBack Function
function failed(sender, args) {
console.log('Request failed. ' + '\n' + 'Error Msg: ' + args.get_message() + '\n' + 'Stack Trace: ' + args.get_stackTrace() + '\n' + 'Correlation ID: ' + args.get_errorTraceCorrelationId());
}


Comments

Popular posts from this blog

Angular JS Routing Step by Step using Visual Studio.

In this post, we will see step by step how to create an Angular JS Project using Visual Studio. This is for beginners only J Before we start, make sure ·         You have very basic understanding of AngularJS ·         Basic understanding of Routing ·         Beginner level knowledge on html5 ·         Hands-On using Visual Studio 1.       Open Visual Studio and click “new project”. Select “ASP.NET Web Application”. Enter Project Name, Location and Solution Name . 2.   Create an “ Empty ” ASP.NET Web Application as shown in below figure 3.  Open Solution Explorer, right click on the solution and click “Manage Nuget Packages” Install Angular.js Once installed, you will see all Angular.JS references in “Scripts” folder. 4.    In Solution Explorer, create a folder “views” and add three html pages as shown below: Below is the code for Index.html : <!DOCTYPE html> <html ng-app="app"> <

SharePoint Script to update MMD Column in Library

This post contains the code to update Managed Metadata column value in Library. Add-PSSnapin Microsoft.Sharepoint.Powershell cls #Log Variables $basePath = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent Set-Location $basePath #SP variables $web=$null ; $list=$null; $SiteURL = "https://mysharepointsite/en-us"# Library Site Url $ListName = "Pages";# List Name $FieldName="Document" $termStoreName = "Managed Metadata Service Application" $termGroupName = "Document_Content" $termSetName = "DocumentName" $MMDValueToUpdate = "Technical Doc" #Pre-requisite checks Try {     #Web Check     $web = Get-SPWeb $SiteURL     if($web -eq $null)     {       Write-Host "Cannot find an SPSite object that contains the following Id or Url: $SiteURL"  $_.Exception.Message        Exit     }     #List Check     $list = $web.Lists[$ListName]     if($list -eq $null)     {        Write-H