Procédure : créer, mettre à jour et supprimer des listes
Dernière modification : vendredi 29 avril 2011
S’applique à : SharePoint Foundation 2010
Dans cet article
Création et mise à jour d’une liste
Ajout d’un champ à une liste
Suppression d’une liste
Disponible dans SharePoint Online
La création, la mise à jour et la suppression de listes via le modèle objet client fonctionne de façon similaire à la manière dont vous effectuez ces tâches à l’aide du modèle objet serveur, bien que les opérations du client ne se terminent pas tant que vous n’avez pas appelé la méthode ExecuteQuery() ou ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
Création et mise à jour d’une liste
Pour créer un objet liste, utilisez la classe ListCreationInformation (JavaScript: ListCreationInformation) pour définir ses propriétés, puis passez cet objet à la méthode Add(ListCreationInformation) (JavaScript: add(parameters)) de la classe ListCollection (JavaScript: ListCollection). L’exemple suivant crée une nouvelle liste Announcements.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class CreateList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
ListCreationInformation listCreationInfo = new ListCreationInformation();
listCreationInfo.Title = "My Announcements List";
listCreationInfo.TemplateType = (int)ListTemplateType.Announcements;
List oList = oWebsite.Lists.Add(listCreationInfo);
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class CreateList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim listCreationInfo As New ListCreationInformation()
listCreationInfo.Title = "My Announcements List"
listCreationInfo.TemplateType = CInt(ListTemplateType.Announcements)
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function createList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
var listCreationInfo = new SP.ListCreationInformation();
listCreationInfo.set_title('My Announcements List');
listCreationInfo.set_templateType(SP.ListTemplateType.announcements);
this.oList = oWebsite.get_lists().add(listCreationInfo);
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oList.get_title() + ' created.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Si vous devez mettre la liste à jour après l’ajout de la liste, vous pouvez définir les propriétés de la liste et appeler la méthode Update() (JavaScript: update()) avant d’appeler ExecuteQuery() ou ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)), comme le montrent les modifications suivantes apportées à l’exemple précédent.
.
.
.
.
List oList = oWebsite.Lists.Add(listCreationInfo);
oList.Description = "New Announcements List";
oList.Update();
clientContext.ExecuteQuery();
.
.
.
.
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
oList.Description = "New Announcements List"
oList.Update()
clientContext.ExecuteQuery()
.
.
.
.
this.oList = oWebsite.get_lists().add(listCreationInfo);
oList.set_description('New Announcements List');
oList.update();
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
Ajout d’un champ à une liste
Utilisez la méthode Add(Field) (JavaScript: add(field)) ou la méthode AddFieldAsXml(String, Boolean, AddFieldOptions) (JavaScript: addFieldAsXml(schemaXml, addToDefaultView, options)) de la classe FieldCollection (JavaScript: FieldCollection) pour ajouter un champ à la collection de champs d’une liste. L’exemple suivant crée un champ puis le met à jour avant d’appeler ExecuteQuery() (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class Program
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
SP.Field oField = oList.Fields.AddFieldAsXml("<Field DisplayName='MyField' Type='Number' />",
true, AddFieldOptions.DefaultValue);
SP.FieldNumber fieldNumber = clientContext.CastTo<FieldNumber>(oField);
fieldNumber.MaximumValue = 100;
fieldNumber.MinimumValue = 35;
fieldNumber.Update();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class AddFieldToList
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("My Announcements List")
Dim oField As SP.Field = oList.Fields.AddFieldAsXml( _
"<Field DisplayName='MyField' Type='Number' />", _
True, AddFieldOptions.DefaultValue)
Dim fieldNumber As SP.FieldNumber = clientContext.CastTo(Of FieldNumber)(oField)
fieldNumber.MaximumValue = 100
fieldNumber.MinimumValue = 35
fieldNumber.Update()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function addFieldToList() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oField = oList.get_fields().addFieldAsXml('<Field DisplayName=\'MyField\' Type=\'Number\' />', true, SP.AddFieldOptions.defaultValue);
var fieldNumber = clientContext.castTo(oField,SP.FieldNumber);
fieldNumber.set_maximumValue(100);
fieldNumber.set_minimumValue(35);
fieldNumber.update();
clientContext.load(oField);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oField.get_title() + ' added.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
L’exemple précédent utilise la méthode CastTo<T>(ClientObject) (JavaScript: castTo(obj, type)) de l’objet de contexte client pour effectuer une conversion vers le type FieldNumber (JavaScript: FieldNumber), qui doit être effectuée avant l’exécution de la requête. Si ce n’est pas fait, le modèle objet client ne connaît pas le type réel de l’objet retourné oField et utilisera par défaut le type Field (JavaScript: Field).
Suppression d’une liste
Pour supprimer une liste, appelez la méthode DeleteObject() (JavaScript: deleteObject()) de l’objet liste, comme le montre l’exemple suivant.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class DeleteList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
List oList = oWebsite.Lists.GetByTitle("My Announcements List");
oList.DeleteObject();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class DeleteList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim oList As List = oWebsite.Lists.GetByTitle("My Announcements List")
oList.DeleteObject()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function deleteList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
this.listTitle = 'My Announcements List';
this.oList = oWebsite.get_lists().getByTitle(listTitle);
oList.deleteObject();
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = listTitle + ' deleted.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Pour des informations et des exemples sur l’utilisation des listes et d’autres objets clients dans le contexte du modèle objet Microsoft SharePoint Foundation 2010 Silverlight, voir Utilisation du modèle objet Silverlight.
Voir aussi
Concepts
Directive du modèle objet client
Vue d'ensemble de la récupération des données
Procédure : récupérer des listes
Tâches courantes de programmation