Я реализовал нижеприведенную функцию, которая прекрасно работает, чтобы получить 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.