0

我在 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);

但它不会从这个网络返回列表。

有人能帮助我吗?

非常感谢!

4

2 回答 2

0

调用“加载”函数后,您需要使用回调函数调用“executeQueryAsync”方法以获取结果:请参阅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()); }
于 2013-02-04T05:54:50.700 回答
0

在调用 Load 方法后尝试调用 this.context.ExecuteQuery()。在 ExecuteQuery() 调用之后,上下文中的对象才可用。

HTH。

于 2013-02-04T03:23:27.487 回答