使用JS从Page属性获取AuthorId的作者名称

时间:2014-07-17 15:18:22

标签: javascript sharepoint sharepoint-2013 client-object-model

我正在使用Sharepoint 2013 JS客户端对象模型来检索和处理Pages列表。对于每个页面,我收集标题等信息。每个页面还包含AuthorId属性,我想用它来检索作者的姓名。怎么做?

以下是我的示例代码:

 var ctx = new SP.ClientContext(siteUrl);
 var items = ctx.get_web().get_lists().getByTitle('Pages').getItems(new SP.CamlQuery());
 ctx.load(items);
 ctx.executeQueryAsync(function () {
      var listEnumerator = items.getEnumerator();
      while(listEnumerator.moveNext()) {
          var page = listEnumerator.get_current();
          alert(page.get_item('Title') + ' - ' + ...);
      }
 });

此外,我还想检索页面网址。

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找Include的{​​{1}}参数。微软没有详细记录,但网上有一些例子。在MSDN页面上,最后有一个社区添加内容可以进行一些讨论(http://msdn.microsoft.com/en-us/library/office/dn168903(v=office.15).aspx)。

SP.ClientContext.load

修改

在下一个示例中,我已将get_lookupvalue添加到Author,并包含EncodedAbsUrl,FileDirRef和FileRef,供您试用该路径。你使用的那个取决于你的需求,但我怀疑你会想要EncodedAbsUrl或FileRef。以下是每个返回的示例:

EncodedAbsUrl:var ctx = new SP.ClientContext(siteUrl); var items = ctx.get_web().get_lists().getByTitle('Pages').getItems(new SP.CamlQuery()); ctx.load(items, "Include(Id, Title, Author)"); ctx.executeQueryAsync(function () { var listEnumerator = items.getEnumerator(); while(listEnumerator.moveNext()) { var page = listEnumerator.get_current(); alert(page.get_item('Title') + ' - ' + page.get_item('Author')); } });

FileDirRef:http://yourserver.com/Pages/home.aspx

FileRef:/Pages

/Pages/home.aspx