Partager via


Procédure : créer ou supprimer des listes

Dernière modification : vendredi 27 mai 2011

S’applique à : SharePoint Foundation 2010

Dans cet article
Création d’une liste avec un type de modèle de liste
Création d’une liste avec un modèle de liste
Suppression d’une liste

Disponible dans SharePoint Online

Les exemples donnés dans cette rubrique montrent comment utiliser le modèle objet serveur SharePoint Foundation pour utiliser des listes dans un site Web ou une collection de sites.

Notes

Les exemples de code dans cette rubrique font appel aux membres de la classe Microsoft.SharePoint.SPContext pour obtenir la collection de sites, la liste ou le site Web actuel. En dehors d’un contexte HTTP, par exemple dans une application console ou une application Windows, les références aux objets clés s’obtiennent à l’aide d’une autre méthode. Au lieu d’utiliser un objet Microsoft.SharePoint.SPContext, utilisez le constructeur SPSite() pour instancier une collection de sites spécifique et obtenir des objets. Pour plus d’informations, voir Obtention de références aux sites, applications Web et autres objets clés.

Création d’une liste avec un type de modèle de liste

Pour créer une liste, utilisez l’une des surcharges de la méthode Add() de la classe SPListCollection.

L’exemple suivant ajoute une nouvelle liste générique, d’événements ou d’annonces, en fonction de la saisie de l’utilisateur. Une clause Switch est utilisée pour déterminer le type de liste que l’utilisateur spécifie et définit le type de modèle de liste en conséquence.

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim listTitle As String = TextBox1.Text
Dim listDescription As String = TextBox2.Text
Dim listType As String = ListBox1.SelectedItem.Text

Dim listTemplateType As New SPListTemplateType()

Select Case listType
    Case "Generic List"
        listTemplateType = SPListTemplateType.GenericList
        Exit 
    Case "Events"
        listTemplateType = SPListTemplateType.Events
        Exit
    Case "Announcements"
        listTemplateType = SPListTemplateType.Announcements
        Exit 
End Select
lists.Add(listTitle, listDescription, listTemplateType)
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;

string listTitle = TextBox1.Text;
string listDescription = TextBox2.Text;
string listType = ListBox1.SelectedItem.Text;

SPListTemplateType listTemplateType = new SPListTemplateType();

switch(listType)
{
    case "Generic List":
    {
        listTemplateType = SPListTemplateType.GenericList;
        break;
    }

    case "Events":
    {
        listTemplateType = SPListTemplateType.Events;
        break;
    }

    case "Announcements":
    {
        listTemplateType = SPListTemplateType.Announcements;
        break;
    }
}

lists.Add(listTitle, listDescription, listTemplateType);

Cet exemple instancie un objet SPListTemplateType contenant le type de modèle de liste spécifié par l’utilisateur. Cet objet doit être transmis en tant que paramètre dans la méthode Add(String, String, SPListTemplateType). L’exemple suppose l’existence de deux zones de texte dans lesquelles l’utilisateur peut taper un titre et une description, ainsi qu’une liste déroulante affichant les types de listes dans lesquelles l’utilisateur peut effectuer sa sélection.

Création d’une liste avec un modèle de liste

Vous pouvez créer une liste non seulement à l’aide de l’énumération SPListTemplateType, mais également à partir d’un objet SPListTemplate qui représente soit un modèle de liste spécifique qui a été créé dans l’interface utilisateur suite à l’enregistrement d’une liste existante en tant que modèle, soit un schéma de liste dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES qui définit un type de liste. Utilisez la propriété ListTemplates de la classe SPWeb pour retourner une collection d’objets de modèles de listes et un outil d’indexation de noms pour spécifier le modèle de liste à utiliser. Cette méthode est illustrée dans l’exemple suivant qui suppose l’existence d’un site Espace de travail de réunion pour la prise de décision.

Dim mySite As SPWeb = SPContext.Current.Web

Dim template As SPListTemplate = mySite.ListTemplates("Decisions")
mySite.Lists.Add("My Decisions", "This is a list of decisions", 
   template)
SPWeb mySite = SPContext.Current.Web;

SPListTemplate template = mySite.ListTemplates["Decisions"];
mySite.Lists.Add("My Decisions", "This is a list of decisions", 
   template);

En utilisant la méthode GetCustomListTemplates de la classe SPSite, l’exemple suivant renvoie des modèles de listes personnalisés pour un site spécifié et crée une liste sur la base d’un modèle de liste spécifié.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim mySite As SPWeb = SPContext.Current.Web
Dim listTemplates As SPListTemplateCollection = siteCollection.GetCustomListTemplates(mySite)
Dim listTemplate As SPListTemplate = listTemplates("Custom List Template")

mySite.Lists.Add("Custom List", "A list created from a custom list template in the list template catalog", listTemplate)
SPSite siteCollection = SPContext.Current.Site;
SPWeb mySite = SPContext.Current.Web;
SPListTemplateCollection listTemplates = siteCollection.GetCustomListTemplates(mySite);
SPListTemplate listTemplate = listTemplates["Custom List Template"];

mySite.Lists.Add("Custom List", "A list created from a custom list template in the list template catalog", listTemplate);

Vous pouvez ajouter une liste à plusieurs sites Web dans une collection de sites, comme le montre l’exemple suivant, qui crée une liste générique sur chaque site Web, basée sur le titre et la description qui est passée au code depuis deux zones de texte. La propriété AllWebs de la classe SPSite est utilisée pour retourner la collection de tous les sites Web qui existent sur le site.

L’exemple de code suppose l’existence de deux zones de texte sur la page .aspx qui contient un formulaire.

Dim listTitle As String = TextBox1.Text.ToString()
Dim listDescription As String = TextBox2.Text.ToString()
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs

Dim web As SPWeb
For Each web In  allWebs    
    Dim allLists As SPListCollection = web.Lists    
    allLists.Add(listTitle, listDescription, SPListTemplateType.GenericList)
Next web
string listTitle = TextBox1.Text.ToString();
string listDescription = TextBox2.Text.ToString();
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;

foreach (SPWeb web in allWebs){    
    SPListCollection allLists = web.Lists;
    allLists.Add(listTitle,listDescription, SPListTemplateType.GenericList);
}

Suppression d’une liste

Pour supprimer une liste, vous devez spécifier le GUID de la liste en tant que paramètre de la méthode Delete. Utilisez la propriété ID de la classe SPList pour rechercher le GUID.

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim list As SPList = lists(TextBox1.Text)
Dim listGuid As System.Guid = list.ID

lists.Delete(listGuid) 
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;

SPList list = lists[TextBox1.Text];
System.Guid listGuid = list.ID;

lists.Delete(listGuid);

L’exemple précédent suppose l’existence d’une zone de texte dans laquelle l’utilisateur spécifie le nom de la liste.

Pour supprimer une liste de plusieurs sites Web, l’exemple suivant utilise des boucles imbriquées pour accéder à une liste contenant un titre correspondant au titre spécifié dans une zone de texte. L’exemple suppose l’existence d’une zone de texte dans la page .aspx qui contient un formulaire.

Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb

For Each web In  allWebs    
    Dim allLists As SPListCollection = web.Lists    
    Dim i As Integer    

    For i = 0 To allLists.Count - 1        
        Dim list As SPList = allLists(i)        
 
        If list.Title = TextBox1.Text Then            
            Dim listGuid As Guid = list.ID          
            allLists.Delete(listGuid)        
        End If    
    Next i
Next web
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;

foreach (SPWeb web in allWebs){    
    SPListCollection allLists = web.Lists; 
   
    for (int i=0; i<allLists.Count; i++)    
    {        
        SPList list = allLists[i];        

        if (list.Title == TextBox1.Text)        
        {            
            Guid listGuid = list.ID;            
            allLists.Delete(listGuid);        
        }    
}}

Dans l’exemple, la propriété Title de la classe SPList est utilisée pour identifier une liste dans la collection de listes pour chaque site Web correspondant au titre spécifié. La propriété ID retourne l’identificateur global unique (GUID) de la liste, qui est passé en tant que paramètre de la méthode Delete.

Les exemples précédents nécessitent une directive using (Imports dans Microsoft Visual Basic) pour l’espace de noms Microsoft.SharePoint.

Voir aussi

Référence

Microsoft.SharePoint

Concepts

Utilisation des objets Liste et des collections

Utilisation de Visual Studio pour le développement SharePoint

Validation de la sécurité et utilisation des publications pour la mise à jour des données

Élévation de privilège