Partager via


Procédure : créer, mettre à jour et supprimer des éléments de liste

Dernière modification : vendredi 29 avril 2011

S’applique à : SharePoint Foundation 2010

Dans cet article
Création d'un élément de liste
Mise à jour d'un élément de liste.
Suppression d'un élément de liste

Disponible dans SharePoint Online

La création, la mise à jour et la suppression d'éléments de liste via le modèle objet client fonctionnent comme l'exécution de ces tâches à l'aide du modèle objet serveur. Vous créez un objet élément de liste, définissez ses propriétés puis mettez à jour l'objet. Pour modifier ou supprimer un objet élément de liste, utilisez la méthode GetById() (JavaScript: getById(id)) de la classe ListItemCollection (JavaScript: ListItemCollection) pour retourner l'objet, puis définissez les propriétés et appelez la mise à jour sur l'objet que cette méthode retourne, ou appelez la propre méthode de l'objet pour effectuer la suppression. Contrairement au modèle objet serveur, chacune de ces opérations dans le modèle objet client doit se conclure avec un appel à ExecuteQuery() ou à ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) pour que les modifications prennent effet sur le serveur.

Création d'un élément de liste

Pour créer des éléments de liste, vous créez un objet ListItemCreationInformation (JavaScript: ListItemCreationInformation), définissez ses propriétés, et le passez en tant que paramètre à la méthode AddItem(ListItemCreationInformation) (JavaScript: addItem(parameters)) de la classe List (JavaScript: List). Définissez les propriétés sur l'objet élément de liste que cette méthode retourne, puis appelez Update() (JavaScript: update()), comme illustré dans l'exemple suivant.

using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class CreateListItem
    {
        static void Main()
        {   
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");

            ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
            ListItem oListItem = oList.AddItem(itemCreateInfo);
            oListItem["Title"] = "My New Item!";
            oListItem["Body"] = "Hello World!";

            oListItem.Update();

            clientContext.ExecuteQuery(); 
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples
    Class CreateListItem

        Shared Sub Main ()

            Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"

            Dim clientContext As New ClientContext(siteUrl)
            Dim oList As SP.List = clientContext.Web.Lists.GetByTitle("Announcements")

            Dim itemCreateInfo As New ListItemCreationInformation()
            Dim oListItem As ListItem = oList.AddItem(itemCreateInfo)
            oListItem("Title") = "My New Item!"
            oListItem("Body") = "Hello World!"

            oListItem.Update()

            clientContext.ExecuteQuery()

        End Sub
    End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';

function createListItem() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
        
    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = oList.addItem(itemCreateInfo);
        
    oListItem.set_item('Title', 'My New Item!');
    oListItem.set_item('Body', 'Hello World!');
        
    oListItem.update();

    clientContext.load(oListItem);
        
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    alert('Item created: ' + oListItem.get_id());
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Dans la mesure où l'exemple précédent crée un élément de liste standard, vous n'avez pas besoin de définir des propriétés sur l'objet ListItemCreationInformation (JavaScript: ListItemCreationInformation) avant qu'il soit passé à la méthode AddItem(ListItemCreationInformation) (JavaScript: addItem(parameters)). Cependant, si votre code doit créer un nouveau dossier, par exemple, vous devez définir la propriété UnderlyingObjectType (JavaScript: underlyingObjectType) de l'objet ListItemCreationInformation (JavaScript: ListItemCreationInformation) en lui affectant la valeur Folder (JavaScript: folder).

Pour des informations et un exemple sur la façon de créer un objet élément de liste dans le contexte de l'objet model Silverlight Microsoft SharePoint Foundation 2010, consultez Utilisation du modèle objet Silverlight.

Mise à jour d'un élément de liste.

Pour définir les propriétés de la plupart des éléments de liste, vous pouvez utiliser un indexeur de colonnes pour effectuer une affectation, et appeler la méthode Update() (JavaScript: update()) de façon que les modifications prennent effet quand vous appelez ExecuteQuery() ou ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)). L'exemple suivant définit le titre du troisième élément dans la liste des annonces.

using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class UpdateListItem
    {
        static void Main()
        {   
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
            ListItem oListItem = oList.Items.GetById(3);

            oListItem["Title"] = "My Updated Title.";

            oListItem.Update();

            clientContext.ExecuteQuery(); 
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples
    Class UpdateListItem

        Shared Sub Main ()

            Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"

            Dim clientContext As New ClientContext(siteUrl)
            Dim oList As List = clientContext.Web.Lists.GetByTitle("Announcements")
            Dim oListItem As ListItem = oList.Items.GetById(3)

            oListItem("Title") = "My Updated Title."

            oListItem.Update()

            clientContext.ExecuteQuery()

        End Sub
    End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';

function updateListItem() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements');

    this.oListItem = oList.getItemById(3);

    oListItem.set_item('Title', 'My Updated Title');

    oListItem.update();

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    alert('Item updated!');
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Suppression d'un élément de liste

Pour supprimer un élément de liste, appelez la méthode DeleteObject() (JavaScript: deleteObject()) sur l'objet. L'exemple suivant utilise la méthode GetItemById() (JavaScript: getItemById(id)) pour retourner le deuxième élément de liste, puis supprime l'élément.

SharePoint Foundation 2010 conserve les ID d'entier dans les collections, même s'ils ont été supprimés. Ainsi, par exemple, le deuxième élément d'une liste ne peut pas avoir 2 comme identificateur. Une ServerException est retournée si la méthode DeleteObject() (JavaScript: deleteObject()) est appelée pour un élément qui n'existe pas.

using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class DeleteListItem
    {
        static void Main()
        {   
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
            ListItem oListItem = oList.GetItemById(2);

            oListItem.DeleteObject();

            clientContext.ExecuteQuery(); 
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples
    Class DeleteListItem

        Shared Sub Main ()

            Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"

            Dim clientContext As New ClientContext(siteUrl)
            Dim oList As List = clientContext.Web.Lists.GetByTitle("Announcements")
            Dim oListItem As ListItem = oList.GetItemById(2)

            oListItem.DeleteObject()

            clientContext.ExecuteQuery()
        End Sub
    End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';

function deleteListItem() {

    this.itemId = 2;

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements');

    this.oListItem = oList.getItemById(itemId);

    oListItem.deleteObject();

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    alert('Item deleted: ' + itemId);
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Si vous voulez, par exemple, récupérer le nouveau nombre d'éléments résultant d'une opération de suppression, incluez un appel à la méthode Update() (JavaScript: update()) pour actualiser la liste. De plus, vous devez charger soit l'objet de liste lui-même soit la propriété ItemCount (JavaScript: itemCount) sur l'objet de liste avant d'exécuter la requête. Si vous souhaitez récupérer à la fois un nombre de début et un nombre de fin des éléments de liste, vous devez exécuter deux requêtes et retourner deux fois le nombre d'éléments, comme indiqué dans la modification suivante de l'exemple précédent.

using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class DeleteListItemDisplayCount
    {
        static void Main()
        {   
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");

            clientContext.Load(oList,
                list => list.ItemCount);

            clientContext.ExecuteQuery();

            int startCount = oList.ItemCount;
            ListItem oListItem = oList.GetItemById(2);

            oListItem.DeleteObject();

            oList.Update();

            clientContext.Load(oList,
                list => list.ItemCount);

            clientContext.ExecuteQuery();

            int endCount = oList.ItemCount;

            Console.WriteLine("Start: {0}  End: {1}", startCount, endCount);
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples
    Class DeleteListItemDisplayCount

        Shared Sub Main ()

            Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"

            Dim clientContext As New ClientContext(siteUrl)
            Dim oList As List = clientContext.Web.Lists.GetByTitle("Announcements")

            clientContext.Load(oList, Function(list) list.ItemCount)

            clientContext.ExecuteQuery()

            Dim startCount As Integer = oList.ItemCount
            Dim oListItem As ListItem = oList.GetItemById(2)

            oListItem.DeleteObject()

            oList.Update()

            clientContext.Load(oList, Function(list) list.ItemCount)

            clientContext.ExecuteQuery()

            Dim endCount As Integer = oList.ItemCount

            Console.WriteLine("Start: {0}  End: {1}", startCount, endCount)
        End Sub
    End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';

function deleteListItemDisplayCount() {

    this.clientContext = new SP.ClientContext(siteUrl);
    this.oList = clientContext.get_web().get_lists().getByTitle('Announcements');

    clientContext.load(oList);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.deleteItem), Function.createDelegate(this, this.onQueryFailed));
}

function deleteItem() {

    this.itemId = 58;
    this.startCount = oList.get_itemCount();
    this.oListItem = oList.getItemById(itemId);

    oListItem.deleteObject();

    oList.update();

    clientContext.load(oList);
        
    clientContext.executeQueryAsync(Function.createDelegate(this, this.displayCount), Function.createDelegate(this, this.onQueryFailed));
}

function displayCount() {

    var endCount = oList.get_itemCount();
    var listItemInfo = 'Item deleted: ' + itemId + 
        '\nStart Count: ' +  startCount + ' End Count: ' + endCount;
        
    alert(listItemInfo)
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Voir aussi

Concepts

Création d’objet client

Directive du modèle objet client

Vue d'ensemble de la récupération des données

Procédure : récupérer des éléments de liste

Tâches courantes de programmation

Autres ressources

Extrait de code : créer un élément dans une liste externe sur le client

Extrait de code : mettre à jour un élément dans une liste externe sur le client

Extrait de code : supprimer un élément d’une liste externe sur le client

Bibliothèque de classes Client

Bibliothèque de classes ECMAScript