Получить имя автора по AuthorId из свойств страницы с помощью JS

Я использую клиентскую объектную модель 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-адрес страницы.


person filip    schedule 17.07.2014    source источник


Ответы (1)


Я думаю, что вы ищете параметр Include для SP.ClientContext.load. Это не очень хорошо задокументировано Microsoft, но в Интернете есть примеры. На странице 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. Вот пример того, что каждый возвращает:

Энкодедабсурл: http://yourserver.com/Pages/home.aspx

FileDirRef: /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'));
      }
 });
person Justin Russell    schedule 17.07.2014
comment
Это близко, но page.get_item('Author') вернет объект. Я не уверен, как получить доступ к имени автора? Кроме того, как получить URL-адрес страницы? - person filip; 18.07.2014
comment
Спасибо за ответ. Я изо всех сил пытался получить имя автора из элемента списка. Мне не хватало .get_lookupValue(). - person MunkeyWrench; 19.09.2015