Lists.GetListItems - Méthode
Retourne des informations sur les éléments dans la liste en fonction de la requête spécifiée.
Espace de noms : WebSvcLists
Assembly : STSSOAP (dans STSSOAP.dll)
Syntaxe
'Déclaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItems", RequestNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
ResponseNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function GetListItems ( _
listName As String, _
viewName As String, _
query As XmlNode, _
viewFields As XmlNode, _
rowLimit As String, _
queryOptions As XmlNode, _
webID As String _
) As XmlNode
'Utilisation
Dim instance As Lists
Dim listName As String
Dim viewName As String
Dim query As XmlNode
Dim viewFields As XmlNode
Dim rowLimit As String
Dim queryOptions As XmlNode
Dim webID As String
Dim returnValue As XmlNode
returnValue = instance.GetListItems(listName, _
viewName, query, viewFields, rowLimit, _
queryOptions, webID)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItems", RequestNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
ResponseNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public XmlNode GetListItems(
string listName,
string viewName,
XmlNode query,
XmlNode viewFields,
string rowLimit,
XmlNode queryOptions,
string webID
)
Paramètres
listName
Type : System.StringChaîne qui contient le nom complet ou le GUID de la liste. Il est recommandé d'utiliser le GUID, qui doit être entouré d'accolades ({}). Lors de l'interrogation de la table UserInfo, la chaîne contient « UserInfo ».
viewName
Type : System.StringChaîne qui contient le GUID de la vue délimitée par des accolades ({}), ce qui détermine l'affichage à utiliser pour les attributs d'affichage par défaut représentés par les paramètres query, viewFieldset rowLimit . Si ce paramètre contient une chaîne vide, la vue par défaut est utilisée. Si le GUID de la vue est fourni, la valeur du paramètre query, viewFieldsou rowLimit remplace le paramètre équivalent au sein de l'affichage. Par exemple, si l'affichage spécifié par le paramètre viewFields a une limite de ligne de 100 lignes, mais le paramètre rowLimit contient 1000, 1 000 lignes sont retournées dans la réponse.
query
Type : System.Xml.XmlNodeUn élément de requête contenant la requête qui détermine quels enregistrements sont renvoyés et dans quel ordre et qui peuvent être affectés à un objet System.Xml.XmlNode , comme dans l'exemple suivant.
viewFields
Type : System.Xml.XmlNodeUn élément ViewFields qui spécifie les champs à renvoyer dans la requête et dans quel ordre, et qui peut être affecté à un objet System.Xml.XmlNode , comme dans l'exemple suivant.
rowLimit
Type : System.StringChaîne qui spécifie le nombre d'éléments ou des lignes, à afficher sur une page avant le début de la pagination. Si fourni, la valeur de ce paramètre remplace la limite de ligne définie dans l'affichage spécifié par le paramètre viewName ou la limite de ligne définie dans la vue par défaut pour la liste.
queryOptions
Type : System.Xml.XmlNodeFragment XML sous la forme suivante, qui contient des nœuds distincts pour les différentes propriétés de l'objet SPQuery , et qui peuvent être affectés à un objet System.Xml.XmlNode .
webID
Type : System.StringFacultatif. Chaîne contenant le GUID du site Web parent pour la liste délimitée par des accolades ({}). Ce paramètre signifie que une référence Null (Rien dans Visual Basic) le site Web spécifié par le Url propriété du service sera utilisée, et si la propriété Url du service n'est pas spécifiée, la site Web racine sera utilisée.
Valeur renvoyée
Type : System.Xml.XmlNode
Fragment XML sous la forme suivante, qui contient des informations sur les éléments de liste et qui peut être affecté à un objet System.Xml.XmlNode .
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
xmlns="https://schemas.microsoft.com/sharepoint/soap/">
<rs:data ItemCount="4">
<z:row ows_Number_Field="6555.00000000000"
ows_Created="2003-06-18T03:41:09Z"
ows_ID="3" ows_owshiddenversion="3" />
<z:row ows_Number_Field="78905456.0000000"
ows_Created="2003-06-18T17:15:58Z"
ows_ID="4" ows_owshiddenversion="2" />
...
</rs:data>
</listitems>
Remarques
La méthode GetListItems prend en charge la pagination côté serveur. Les données XML renvoyées par cette méthode incluent un attribut ListItemCollectionPositionNext à l'intérieur de l'élément rs:Data qui contient les informations pour prendre en charge la pagination. Cette chaîne contient des données pour les champs dans l'ordre de tri et d'autres éléments nécessaires pour la pagination. Vous devez prendre en compte cette chaîne interne et de ne pas être modifiées ; sa modification peut produire des résultats inattendus. L'exemple suivant montre le formulaire de cette valeur de retour lors de la pagination est prise en charge.
<rs:Data ListItemCollectionPositionNext="
Paged=TRUE&p_ID=100&View=
%7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
101" Count=1000 >
<z:row ows_FirstName="Nancy" ows_LastName="Name" ….. />
...
</rs:Data>
Pour obtenir la page suivante de données, le paramètre queryOption est utilisé, comme illustré dans l'exemple suivant.
<QueryOptions>
<Paging ListItemCollectionPositionNext="
Paged=TRUE&p_ID=100&View=
%7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
101" />
</QueryOptions>
Exemples
L'exemple de code suivant affiche les éléments où un champ Number contient une valeur supérieure à 5 000 et un champ DateTime contient une valeur supérieure à une date spécifiée. L'exemple utilise un objet XmlDocument pour créer des objets XmlNode pour les paramètres.
Cet exemple suppose qu'une directive de Imports (Visual Basic) soit incluse pour l'espace de noms System.Xml ou de using (Visual c#).
Dim listService As New Web_Reference_Folder.Lists()
listService.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim xmlDoc = New System.Xml.XmlDocument()
Dim ndQuery As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "Query", "")
Dim ndViewFields As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "")
Dim ndQueryOptions As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "")
ndQueryOptions.InnerXml =
"<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + _
"<DateInUtc>TRUE</DateInUtc>"
ndViewFields.InnerXml =
"<FieldRef Name='Field1'/><FieldRef Name='Field2'/>"
ndQuery.InnerXml =
"<Where><And><Gt><FieldRef Name='Field1'/>" + _
"<Value Type='Number'>5000</Value></Gt><Gt>
<FieldRef Name='Field2'/>" + _
"<Value Type='DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>"
Try
Dim ndListItems As XmlNode =
listService.GetListItems("List_Name", Nothing, ndQuery, _
ndViewFields, Nothing, ndQueryOptions, Nothing)
MessageBox.Show(ndListItems.OuterXml)
Catch ex As System.Web.Services.Protocols.SoapException
MessageBox.Show("Message:" + ControlChars.Lf + ex.Message +
ControlChars.Lf +
"Detail:" + ControlChars.Lf + ex.Detail.InnerText +
ControlChars.Lf +
"StackTrace:" + ControlChars.Lf + ex.StackTrace)
End Try
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element,"Query","");
XmlNode ndViewFields =
xmlDoc.CreateNode(XmlNodeType.Element,"ViewFields","");
XmlNode ndQueryOptions =
xmlDoc.CreateNode(XmlNodeType.Element,"QueryOptions","");
ndQueryOptions.InnerXml =
"<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" +
"<DateInUtc>TRUE</DateInUtc>";
ndViewFields.InnerXml = "<FieldRef Name='Field1' />
<FieldRef Name='Field2'/>";
ndQuery.InnerXml = "<Where><And><Gt><FieldRef Name='Field1'/>" +
"<Value Type='Number'>5000</Value></Gt><Gt><FieldRef Name='Field2'/>" +
"<Value Type=
'DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>";
try
{
XmlNode ndListItems =
listService.GetListItems("List_Name", null, ndQuery,
ndViewFields, null, ndQueryOptions, null);
MessageBox.Show(ndListItems.OuterXml);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" +
ex.Detail.InnerText +
"\nStackTrace:\n" + ex.StackTrace);
}