我正在使用AJAX向Sharepoint发送Web服务调用以检索列表项。
我得到了结果的第一页:
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>ListName</listName> \
<rowLimit>10</rowLimit> \
<query> \
<Query> \
<Where> \
<IsNotNull> \
<FieldRef Name='Title'/> \
</IsNotNull> \
</Where> \
<OrderBy> \
<FieldRef Name='Title' Ascending='True' /> \
</OrderBy> \
</Query> \
</query> \
<queryOptions><QueryOptions/></queryOptions> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>"
然后,我可以使用结果中的书签转到下一页:
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>ListName</listName> \
<rowLimit>10</rowLimit> \
<query> \
<Query> \
<Where> \
<IsNotNull> \
<FieldRef Name='Title'/> \
</IsNotNull> \
</Where> \
<OrderBy> \
<FieldRef Name='Title' Ascending='True' /> \
</OrderBy> \
</Query> \
</query> \
<queryOptions><QueryOptions> \
<Paging ListItemCollectionPositionNext='" + bookmark + "'" + " /> \
</QueryOptions></queryOptions> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>"
其中书签是“Paged = TRUE&amp; p_Title = BlahBlah; p_ID = 5”
但是我想跳到第30页或最后一页,所以很明显我没有适当的p_Title值。我尝试使用各种数字添加PageFirstRow变量,但它不会更改结果。如果我省略了p_Title,我只是再次获得第一页。更改p_ID什么都不做。
有什么想法吗?
谢谢, 乔尔
答案 0 :(得分:1)
documentation表明这是不可能的。
此方法返回的XML数据 包括一个 ListItemCollectionPositionNext rs:Data元素内的属性 包含信息 支持分页。这个字符串包含 排序和字段中的字段数据 用于分页所需的其他项目。您 应该考虑这个字符串内部 不得修改;修改它 会产生意想不到的结果。
很遗憾,但我猜这个属性的名称对于它的功能是准确的。