0

SharePointでホストされているアプリに問題があります。私がやりたいのは、アプリが実行されているWebのリストを取得し、これらのリストを操作することだけです。

このコードを使用して、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);

ただし、このWebからリストは返されません。

誰かが私を助けてくれますか?

どうもありがとう!

4

2 に答える 2

0

Load メソッドを呼び出した後、 this.context.ExecuteQuery() を呼び出してみてください。コンテキスト内のオブジェクトは、ExecuteQuery() 呼び出しの後まで使用できません。

HTH。

于 2013-02-04T03:23:27.487 に答える
0

「load」関数を呼び出した後、コールバック関数を使用して「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 に答える