SharePoint Online Hosted App get List Items from within app
Вопрос
I have a Visual Studio 2013 solution and I have been successfully able to get list items from the host web using the following JavaScript code:
var context = SP.ClientContext.get_current();
var factory;
var appContextSite;
var mylist;
context = new SP.ClientContext(appweburl);
factory = new SP.ProxyWebRequestExecutorFactory(appweburl);
context.set_webRequestExecutorFactory(factory);
appContextSite = new SP.AppContextSite(context, hostweburl);
this.web = appContextSite.get_web();
mylist = this.web.get_lists().getByTitle('My List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<Query><OrderBy><FieldRef Name=\'ID\'/></OrderBy></Query>');
var collListItem = mylist.getItems(camlQuery);
context.load(mylist);
context.load(collListItem);
context.executeQueryAsync(
Function.createDelegate(this, success),
Function.createDelegate(this, error)
);
However I have now created an External Content Type inside of the app and need to get information from the list that has been created:
I have tried modifying my code and having a look through MSDN but so far there appears to be very limited information on this.
I would appreciated any help and guidance that can be provided for this.
Решение
You can use below code to start with:
var context = SP.ClientContext.get_current();//Get current app web context
var mylist;
this.web = context.get_web();
mylist = this.web.get_lists().getByTitle('My List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<Query><OrderBy><FieldRef Name=\'ID\'/></OrderBy></Query>');
var collListItem = mylist.getItems(camlQuery);
context.load(mylist);
context.load(collListItem);
context.executeQueryAsync(
Function.createDelegate(this, success),
Function.createDelegate(this, error)
);
Другие советы
function queryListItems() {
var clientContext = new SP.ClientContext.get_current();
var oList = clientContext.get_web().get_lists().getByTitle('My List');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Leq><FieldRef Name=\'ID\'/><Value Type=\'Number\'>100</Value></Leq></Where></Query></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var x=document.getElementById("country");
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
//listItemInfo += '\nID: ' + oListItem.get_id() + '\nTitle: ' + oListItem.get_item('Title');
var row=x.insertRow(1);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
cell1.innerHTML=oListItem.get_id();
cell2.innerHTML=oListItem.get_item('listvalue1');
cell3.innerHTML=oListItem.get_item('listvalue2');
}
alert(cell2.value);
alert(x.rows.length);
//alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Не связан с sharepoint.stackexchange