Получить URL-адреса формы списка по умолчанию для списка, даже если он использует InfoPath - PullRequest
0 голосов
/ 13 марта 2019

Я реализовал нижеприведенную функцию, которая прекрасно работает, чтобы получить URL-адреса формы по умолчанию для определенного списка.Это прекрасно работает для списков, чьи формы не были отредактированы / затронуты InfoPath.Однако при запуске функции для списка, формы по умолчанию которого являются формами InfoPath, значения DefaultDisplayFormUrl , DefaultDisplayFormUrl и DefaultDisplayFormUrl , возвращаемые из REST API, по-прежнему содержатзначения, отличные от InfoPath.

Например:

  • Для списков, отличных от InfoPath, я получаю следующий шаблон: /sites/SITENAME/Lists/LISTNAME/DispForm.aspx...
  • Для списков InfoPath я все еще получаю тот же шаблон, но это должно быть что-то вроде /sites/SITENAME/Lists/LISTNAME/Item/displayifs.aspx...

function getListFormUrls(argObj) {

  var theChildList = argObj.ListName;
  var deferred = $.Deferred();

  $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('" + theChildList + "')/?$select=DefaultDisplayFormUrl,DefaultEditFormUrl,DefaultNewFormUrl",
    type: "GET",
    headers: {
      "accept": "application/json;odata=verbose",
    },
    success: function(data) {
      argObj['DefaultDisplayFormUrl'] = (data.d.DefaultDisplayFormUrl);
      argObj['DefaultEditFormUrl'] = (data.d.DefaultEditFormUrl);
      argObj['DefaultNewFormUrl'] = (data.d.DefaultNewFormUrl);
      deferred.resolve(argObj);

    },
    error: function(error) {
      console.log(JSON.stringify(error));
      deferred.reject();
    }
  });

  return deferred.promise();
}

getListFormUrls({ListName: "TestList"}).then( function(res) {
   console.log(res.DefaultDisplayFormUrl);
});

Кто-нибудь знает, что я делаю не так?Или, если есть лучший способ получить истинные URL-адреса формы по умолчанию для любого списка, включая InfoPath?

Я попытался проанализировать объекты, возвращенные из:

  • / _ api /web / lists / LISTNAME
  • / _ api / web / lists / GetByTitle ('LISTNAME') / Forms / Items
  • / _ api / web / lists / LISTNAME / GetByTitle ('LISTNAME') /Forms /
    (Для этого я успешно получаю URL-адреса форм для всех форм, входящих в список, включая InfoPath, но нет указания, какая из них является стандартной.

На этом этапе я бы даже согласился с тем, что REST API скажет мне, на что настроены Настройки формы списка. Но я не могу найти, как это сделать в REST API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...