我正在尝试检索列表中的所有项目,但我只获得前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>
答案 0 :(得分:1)
视图上可能设置了rowLimit,您可以通过添加
来覆盖它<rowLimit>1000</rowLimit>
到GetListItems参数。
请注意,虽然SharePoint 2010可以限制您的请求,但不会返回超过5000或20000(对于管理员)项目。可以在Central Admin的Web应用程序设置中更改这些设置。
顺便说一句,如果您还没有这样做,您可能需要考虑使用XSLT列表视图Web部件。