【问题标题】:Get Author name by AuthorId from Page properties using JS使用 JS 从页面属性中通过 AuthorId 获取作者姓名
【发布时间】:2014-07-17 15:18:21
【问题描述】:

我正在使用 Sharepoint 2013 JS 客户端对象模型来检索和处理页面列表。对于每个页面,我都会收集标题等信息。每个页面还包含 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') + ' - ' + ...);
      }
 });

另外我还想检索页面url。

【问题讨论】:

    标签: javascript sharepoint sharepoint-2013 sharepoint-clientobject


    【解决方案1】:

    我认为您正在寻找 SP.ClientContext.loadInclude 参数。微软没有很好地记录它,但网上有例子。在 MSDN 页面上,最后添加了一个社区,对此进行了一些讨论(http://msdn.microsoft.com/en-us/library/office/dn168903(v=office.15).aspx)。

    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'));
          }
     });
    

    编辑

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

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

    文件目录引用:/Pages

    文件引用:/Pages/home.aspx

    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, EncodedAbsUrl, FileDirRef, FileRef)");
     ctx.executeQueryAsync(function () {
          var listEnumerator = items.getEnumerator();
          while(listEnumerator.moveNext()) {
              var page = listEnumerator.get_current();
              alert(page.get_item('Title') + ' - ' + page.get_item('Author').get_lookupValue() + ' - ' + page.get_item('EncodedAbsUrl') + ' - ' + page.get_item('FileDirRef') + ' - ' + page.get_item('FileRef'));
          }
     });
    

    【讨论】:

    • 这很接近,但 page.get_item('Author') 将返回一个对象。我不确定如何访问作者的姓名?另外,如何获取页面url?
    • 感谢您的回答。我正在努力从列表项中获取作者姓名。我错过了 .get_lookupValue()。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2021-09-06
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多