Hi,
I have following Script:
ExecuteOrDelayUntilScriptLoaded(loadRoadMap, "sp.js");
function loadRoadMap()
{
var currentCtx = SP.ClientContext.get_current();
var currentWeb = currentCtx.get_web();
this.roadmapList = currentWeb.get_lists().getByTitle('Roadmap');
var camlQuery = new SP.CamlQuery();
this.collListItem = roadmapList.getItems(camlQuery);
currentCtx.load(collListItem);
currentCtx.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
var projectUrl = oListItem.get_item('ProjectURL').get_url();
listItemInfo += '<tr><td>' + oListItem.get_item('Roadmap_x0020_Project') + '</td><td>' + getStatus(projectUrl) + '</td></tr>';
$('#statusTable').append($(listItemInfo));
}
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
function getStatus(project) {
var crossSiteContext = new SP.ClientContext("http://mytestsite.com/it");
var crossSiteWeb = crossSiteContext.get_web();
this.dashboardList = crossSiteWeb.get_lists().getByTitle('dashboard');
var projectQuery = new SP.CamlQuery();
projectQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name=\'Project\'/>" +
"<Value Type=\'URL\'>"+ project +"</Value></Eq></Where></Query>" +
"<RowLimit>10</RowLimit></View>");
this.statusItem = dashboardList.getItems(projectQuery);
crossSiteContext.load(statusItem);
crossSiteContext.executeQueryAsync(
Function.createDelegate(this, this.onStatusQuerySucceeded),
Function.createDelegate(this, this.onStatusQueryFailed)
);
}
function onStatusQuerySucceeded(sender, args) {
var projectItemInfo = '';
var projectItemEnumerator = statusItem.getEnumerator();
while (projectItemEnumerator.moveNext()) {
alert("Success");
var statusItem = projectItemEnumerator.get_current();
projectItemInfo += '\nID: ' + statusItem.get_id() +
'\nStatus: ' + statusItem.get_item('Project_x0020_Status').Label;
}
}
function onStatusQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
When I debug this code, I am getting following error:
Uncaught TypeError: Cannot read property 'getEnumerator' of undefined on below line
var projectItemEnumerator = statusItem.getEnumerator();
I am not sure where the problem lies. Can anyone please help?
Thanks.