Je rencontre des problèmes de pagination via une liste via SOAP.Pagination via la liste SharePoint 2010 via SOAP
Je peux récupérer une liste, mais elle ne renvoie que les 30 premiers éléments. (qui est le paramètre dans la vue par défaut).
$methodName = 'GetListItems';
$listName = '{259134c5-fa87-441e-8c31-641b51193710}';
$camlQuery="";
$paging = urlencode('Paged=TRUE&p_ID=30');
$xmlAction =
'<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>' . $listName . '</listName>
<query>' . $camlQuery . '</query>
<queryOptions>
<QueryOptions>
<Paging ListItemCollectionPositionNext="' . $paging . '" />
</QueryOptions>
</queryOptions>
</GetListItems>';
echo '<hr><h1>My Action is:</h1><pre>' . htmlentities($xmlAction) . '</pre>';
$client = new Nusoap_Client($wsdl,true);
$response = $client->call($methodName,$xmlAction);
echo '<hr><h1>Response:</h1><pre>' . htmlentities(print_r($response,true)) . '</pre>';
Ceci renvoie une réponse comme celle-ci, sauf qu'il y a 30 éléments.
Response:
Array
(
[GetListItemsResult] => Array
(
[listitems] => Array
(
[data] => Array
(
[row] => Array
(
[0] => Array
(
[!ows_Region] => 7
[!ows_District_x0020_ID] => 1902
[!ows_District] => SOME ISD
[!ows_Campus_x0020_ID] => 1902001
[!ows_Campus] => MY H S
[!ows_Grade_x0020_Range] => 09-12
[!ows_FileRef] => 30;#sites/ti/Lists/Schools/30_.000
[!ows_MetaInfo] => 30;#
)
)
[!ItemCount] => 30
[!ListItemCollectionPositionNext] => Paged=TRUE&p_ID=30
)
)
)
)
Le documentation says pour obtenir la page suivante, je dois fournir la valeur retournée dans « ListItemCollectionPositionNext » et demande à nouveau. C'est ce que fait ce qui précède, et il retourne les mêmes 30 enregistrements. Cette liste contient 26 articles.
Ce n'est pas un problème. Je suis un administrateur pour cette liste et je peux la manipuler via l'interface web de sharepoint.
Quoi d'autre me manque-t-il?