Запрос списка SharePoint через SOAP, возвращающий только первую страницу просмотра
Я пытаюсь получить все элементы в списке, но получаю только первые 50 элементов (первая страница представления по умолчанию). В конечном итоге я хотел бы собрать все элементы из списка в массив, который я могу отсортировать и проанализировать для вывода статистики в серии отформатированных XSLT, но давайте сначала решим наше первое препятствие.
Вот мой код:
<script src="/sites/mySite/Resources/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var soapEnv =
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>myList</listName> \
<viewFields> \
<ViewFields> \
<FieldRef Name='Team_x0020_Assigned' /> \
</ViewFields> \
</viewFields> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>";
$.ajax({
url: "/sites/mySite/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
complete: processResult,
contentType: "text/xml; charset=\"utf-8\""
});
});
function processResult(xData, status) {
$(xData.responseXML).find("z\\:row").each(function() {
var liHtml = "<li>" + $(this).attr("ows_Team_x0020_Assigned") + "</li>";
$("#tasksUL").append(liHtml);
});
}
</script>
1 ответ
Вероятно, для представления установлен rowLimit, вы можете переопределить его, добавив
<rowLimit>1000</rowLimit>
К параметрам GetListItems.
Обратите внимание, что SharePoint 2010 может ограничить ваш запрос и не возвращать более 5000 или 20000 (для администраторов) элементов. Эти параметры можно изменить в настройках веб-приложения Central Admin.
Кроме того, если вы еще этого не сделали, возможно, вы захотите изучить использование веб-части представления списка XSLT.