我正在尝试检索列表中的所有项目,但我只获取前 50 个项目(默认 View 的第一页)。最终,我想将列表中的所有项目拉入一个数组,我可以对其进行排序和解析,以一系列格式化的 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>
最佳答案
View 上可能设置了 rowLimit,您可以通过添加来覆盖它
<rowLimit>1000</rowLimit>
到 GetListItems 参数。
请注意,SharePoint 2010 可能会限制您的请求,并且不会返回超过 5000 或 20000 个(对于管理员)项目。这些设置可以在管理中心的 Web 应用程序设置中更改。
顺便说一句,如果您还没有这样做,您可能想考虑使用 XSLT ListView Web 部件。
关于jquery - 通过 SOAP 查询 SharePoint 列表仅返回 View 的第一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15416361/