我在SharePoint托管应用中遇到问题。我想要做的就是,获取应用程序运行的网络列表并使用这些列表。
使用此代码,我将获得AppWeb中的列表:
this.web = context.get_web();
this.lists = this.web.get_lists();
this.context.load(this.lists);
我已经尝试过类似的东西,从HostWeb获取列表:
this.context = new SP.ClientContext("https://sharepoint-server.com/_layouts/15/start.aspx#/");
var oWebsite = client.get_web();
this.lists = oWebsite.get_lists();
this.context.load(this.lists);
但它不会从此网站返回列表。
有人能帮助我吗?
非常感谢!
答案 0 :(得分:0)
在调用Load方法后尝试调用this.context.ExecuteQuery()。在ExecuteQuery()调用之后,上下文中的对象才可用。
HTH。
答案 1 :(得分:0)
调用'load'函数后,需要使用回调函数调用'executeQueryAsync'方法来获得结果:请参阅example code from MSDN:
function retrieveAllListProperties(siteUrl) {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
this.collList = oWebsite.get_lists();
clientContext.load(collList);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)); }
function onQuerySucceeded() {
var listInfo = '';
var listEnumerator = collList.getEnumerator();
while (listEnumerator.moveNext()) {
var oList = listEnumerator.get_current();
listInfo += 'Title: ' + oList.get_title() + ' Created: ' + oList.get_created().toString() + '\n';
}
alert(listInfo); }
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }