SPSiteDataQuery.Lists - Propriété
Obtient ou définit le XML interne qui spécifie les listes à inclure dans la requête.
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Property Lists As String
Get
Set
'Utilisation
Dim instance As SPSiteDataQuery
Dim value As String
value = instance.Lists
instance.Lists = value
public string Lists { get; set; }
Valeur de propriété
Type : System.String
Chaîne XML qui contient un ID d'entier qui spécifie le type de liste ou de GUID qui spécifient les ID des listes.
Remarques
L'élément de niveau supérieur dans la chaîne doit être Lists.
Attributs de listes
Les attributs facultatifs pris en charge pour la balise Lists sont les suivantes :
ServerTemplate --limite la requête aux listes du modèle de serveur spécifié. Par défaut, cet attribut n'est pas défini et si la requête n'est pas limitée aux listes basés sur un modèle particulier.
Exemple : <Lists ServerTemplate="104" />
BaseType --limite la requête aux listes du type de base spécifié. Par défaut, la requête considère comme listes de BaseType 0 (générique).
Exemple : <Lists BaseType="1" />
Le tableau suivant répertorie les valeurs possibles pour l'attribut.
Valeur
Description
0
Liste générique
1
Bibliothèque de documents
3
Forum de discussion
4
Vote ou une enquête
5
Liste des problèmes
Hidden --détermine si la requête inclut les listes masquées. Par défaut, la requête considère toutes les listes non masqués.
Exemple : <Lists Hidden = "TRUE />
MaxListLimit --limite la requête et le nombre total de listes spécifié. Si la requête dépasse la limite, la requête échoue et déclenche une SPExceptionà la place. Par défaut, la limite est de 1000. Lorsque la valeur 0, il n'y a aucune limite au nombre de listes qui sont considérés comme.
Exemple : <Lists MaxListLimit="500" />
Listes de sous-éléments
Sous-éléments possibles de la balise Lists incluent List et WithIndex.
La balise List permet à la requête d'inclure des listes spécifiques, au lieu de renvoyer toutes les listes d'un type particulier. L'attribut ID identifie chaque liste. Exemple :
<Lists> <List ID="7A9FDBE6-0841-430a-8D9A-53355801B5D5" /> <List ID="3D18F506-FCA1-451e-B645-2D720DC84FD8" /> </Lists>
La balise WithIndex est un enfant facultatif de Lists et, le cas échéant, la requête est limitée aux listes avec des champs indexés.
Avertissement
Les requêtes qui utilisent WithIndex entraîne le ralentissement des performances pour une collection de sites avec un grand nombre d'éléments. WithIndex est fourni uniquement pour compatibilité ascendante et son utilisation n'est pas recommandée.
L'élément WithIndex possède trois attributs requis : FieldId, Valueet Type. L'attribut Type doit être défini à Text. L'exemple suivant, la requête prend en considération que les listes qui contiennent des éléments dont le champ spécifié est indexé et définir la valeur de texte « Complete ».
<Lists> <WithIndex FieldId="D4819257-6B69-41F1-82C8-A91615BFF500" Type="Text" Value="Complete" /> </Lists>
Exemples
L'exemple suivant est une application console qui récupère les données de toutes les listes qui sont basés sur le modèle de liste de Contacts.
Imports System
Imports System.Data
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As SPSite = New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb()
Dim query As SPSiteDataQuery = New SPSiteDataQuery()
' Query all Web sites in this site collection.
query.Webs = "<Webs Scope='SiteCollection'>"
' Ask for all lists created from the contacts template.
query.Lists = "<Lists ServerTemplate='105' />"
' Get the Title (Last Name) and FirstName fields.
query.ViewFields = "<FieldRef Name='Title' />"
query.ViewFields += "<FieldRef Name='FirstName' Nullable='TRUE'/>"
Dim results As DataTable = web.GetSiteData(query)
For Each row As DataRow In results.Rows
Console.WriteLine("{0} {1}", row("FirstName"), row("Title"))
Next
End Using
End Using
Console.ReadLine()
End Sub
End Module
using System;
using System.Data;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPSiteDataQuery query = new SPSiteDataQuery();
// Query all Web sites in this site collection.
query.Webs = "<Webs Scope=\"SiteCollection\">";
//Ask for all lists created from the contacts template.
query.Lists = "<Lists ServerTemplate=\"105\" />";
// Get the Title (Last Name) and FirstName fields.
query.ViewFields = "<FieldRef Name=\"Title\" />";
query.ViewFields += "<FieldRef Name=\"FirstName\" Nullable=\"TRUE\"/>";
DataTable results = web.GetSiteData(query);
foreach (DataRow row in results.Rows)
Console.WriteLine("{0} {1}", row["FirstName"], row["Title"]);
}
}
Console.ReadLine();
}
}
}