I want to do paging on sharepoint list. I have below code which is giving error.
var customlist;
var allItems;
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var listName = "MyList";
var list = web.get_lists().getByTitle(listName);
var spItems,
position = null,
nextPagingInfo,
previousPagingInfo,
pageIndex = 1, // default page index value
pageSize = 4, // default page size value
list,
camlQuery,
sortColumn = "Name";
debugger;
camlQuery = new SP.CamlQuery();
camlQuery.set_listItemCollectionPosition(position);
camlQuery.set_viewXml("<View>" +
"<ViewFields>" +
"<FieldRef Name='Name'/>" +
"<FieldRef Name='Email'>" +
"</ViewFields>" +
"<Query>" +
"<OrderBy>" +
"<FieldRef Name='" + sortColumn + "' Ascending='true' />" +
"</OrderBy>" +
"</Query>" +
"<RowLimit>" + pageSize + "</RowLimit></View>");
spItems = list.getItems(camlQuery);
context.load(spItems, 'Include(Name,Age)');
context.executeQueryAsync(
Function.createDelegate(this, function () {
var enumerator = spItems.getEnumerator();
while (enumerator.moveNext()) {
var currentListItem = enumerator.get_current();
var name = currentListItem.get_item('Name');
var attachments = currentListItem.get_attachmentFiles();
for (var j = 0; j < attachments.get_count() ; j++) {
attachment = attachments.getItemAtIndex(j);
console.log(attachment.get_serverRelativeUrl());
}
}
div.html(innerHtml);
}),
Function.createDelegate(this, fail)
);
function fail() {
debugger;
alert(arguments[1].get_message());
}
Error is
value doesnt fall within expected range
I think error is coming when i write this line
camlQuery.set_listItemCollectionPosition(position);
Not sure what to pass in position variable. When I load page for first time what should I pass in position variable?
Update1
If i remove code
camlQuery.set_viewXml("<View>" +
"<ViewFields>" +
"<FieldRef Name='Name'/>" +
"<FieldRef Name='Email'/>" +
"</ViewFields>" +
"<Query>" +
"<OrderBy>" +
"<FieldRef Name='" + sortColumn + "' Ascending='true' />" +
"</OrderBy>" +
"</Query>" +
"<RowLimit>" + pageSize + "</RowLimit></View>");
and pass hardcoded pagesize then i dont get error
camlQuery.set_viewXml('<View><RowLimit>3</RowLimit></View>');
Update2
Here is list view