Partager via


Création d’objet client

Dernière modification : vendredi 27 mai 2011

S’applique à : SharePoint Foundation 2010

Disponible dans SharePoint Online

S’il est possible de créer un objet client tel qu’un objet List (JavaScript : List), sa collection d’objets clients telle que ListCollection (JavaScript: ListCollection) possède une méthode Add acceptant un objet ClientObjectCreationInformation, par exemple, ListCreationInformation (JavaScript: ListCreationInformation) qui contient toutes les informations nécessaires pour créer l’objet.

L’exemple ci-après utilise WebCreationInformation (JavaScript : WebCreationInformation) avec la méthode Add(WebCreationInformation) (JavaScript : add(parameters)) pour créer un site Web enfant sous un site Web spécifié.

ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite");
WebCollection collWeb = clientContext.Web.Webs;

WebCreationInformation webCreationInfo = new WebCreationInformation();
webCreationInfo.Title = "My New Web Site";
webCreationInfo.Description = "Description of new Web site...";
webCreationInfo.Language = 1033;
webCreationInfo.Url = "MyNewWebSite";
webCreationInfo.UseSamePermissionsAsParentSite = true;
webCreationInfo.WebTemplate = "STS#0";

Web oNewWebsite = collWeb.Add(webCreationInfo);
clientContext.ExecuteQuery();
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite")
Dim collWeb As WebCollection = clientContext.Web.Webs
         
Dim webCreationInfo As New WebCreationInformation()
webCreationInfo.Title = "My New Web Site"
webCreationInfo.Description = "Description of new Web site..."
webCreationInfo.Language = 1033
webCreationInfo.Url = "MyNewWebSite"
webCreationInfo.UseSamePermissionsAsParentSite = True
webCreationInfo.WebTemplate = "STS#0"
         
Dim oNewWebsite As Web = collWeb.Add(webCreationInfo)
clientContext.ExecuteQuery()
function createWebsite() {

    var clientContext = new SP.ClientContext('http://MyServer/sites/MySiteCollection/MyWebSite');
    var collWeb = clientContext.get_web().get_webs();

    var webCreationInfo = new SP.WebCreationInformation();
    webCreationInfo.set_title('My New Web Site');
    webCreationInfo.set_description('Description of new Web site...');
    webCreationInfo.set_language(1033);
    webCreationInfo.set_url('MyNewWebSite');
    webCreationInfo.set_useSamePermissionsAsParentSite(true);
    webCreationInfo.set_webTemplate('STS#0');

    var oNewWebsite = collWeb.add(webCreationInfo);


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

function onQuerySucceeded() {
    alert("Created Web site.");
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Dans l’exemple précédent, la méthode Add(WebCreationInformation) (JavaScript : add(parameters)) crée immédiatement un site Web dans la collection d’objets clients, sans attendre la récupération suivante de données de collection ou un appel à ExecuteQuery() ou ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript : executeQueryAsync(succeededCallback, failedCallback)).

Vous pouvez utiliser un objet ClientObjectCreationInformation pour créer de nombreux objets. La création d’un nœud de navigation par exemple, implique également l’utilisation d’un objet ClientObjectCreationInformation. L’exemple ci-après définit un nœud de navigation au moyen d’un objet NavigationNodeCreationInformation (JavaScript : NavigationNodeCreationInformation) et utilise cet objet pour ajouter un lien dans la zone Lancement rapide du site Web spécifié. L’exemple ajoute un lien à une liste d’un autre site Web en tant que second nœud enfant sous le nœud Listes de niveau supérieur.

ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite");

NavigationNodeCollection collNavNode = clientContext.Web.Navigation.QuickLaunch;

clientContext.Load(collNavNode);
clientContext.ExecuteQuery();

NavigationNodeCollection collChildNavNode = collNavNode[1].Children;

clientContext.Load(collChildNavNode);
clientContext.ExecuteQuery();

NavigationNodeCreationInformation navNodeCreationInfo = new NavigationNodeCreationInformation();

navNodeCreationInfo.PreviousNode = collChildNavNode[0];
navNodeCreationInfo.Title = "My Navigation Node";
navNodeCreationInfo.Url = "http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx";

collChildNavNode.Add(navNodeCreationInfo);

clientContext.ExecuteQuery();
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite")
         
Dim collNavNode As NavigationNodeCollection = clientContext.Web.Navigation.QuickLaunch
         
clientContext.Load(collNavNode)
clientContext.ExecuteQuery()
         
Dim collChildNavNode As NavigationNodeCollection = collNavNode(1).Children
         
clientContext.Load(collChildNavNode)
clientContext.ExecuteQuery()
         
Dim navNodeCreationInfo As New NavigationNodeCreationInformation()
         
navNodeCreationInfo.PreviousNode = collChildNavNode(0)
navNodeCreationInfo.Title = "My Navigation Node"
navNodeCreationInfo.Url = "http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx"
         
collChildNavNode.Add(navNodeCreationInfo)
         
clientContext.ExecuteQuery()
function getNavNodes() {
    this.clientContext = new SP.ClientContext('/sites/MySiteCollection/MyWebSite');
    this.collNavNode = clientContext.get_web().get_navigation().get_quickLaunch();

    clientContext.load(collNavNode);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.getChildNavNodes), Function.createDelegate(this, this.onQueryFailed));
}

function getChildNavNodes() {

    this.collChildNavNode = collNavNode.get_item(1).get_children();
    clientContext.load(collChildNavNode);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.createNavNode), Function.createDelegate(this, this.onQueryFailed));
}

function createNavNode() {

    var navNodeCreationInfo = new SP.NavigationNodeCreationInformation();
    navNodeCreationInfo.set_previousNode(collChildNavNode.get_item(0));
    navNodeCreationInfo.set_title('My Navigation ECMA Node');
    navNodeCreationInfo.set_url('http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx');

    collChildNavNode.add(navNodeCreationInfo);

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

function onQuerySucceeded() {

    alert("Created navigation node.");
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

L’exemple précédent crée un lien vers un autre site Web dans une collection de sites. Pour créer un lien externe vers un emplacement en dehors de la collection de sites, vous devez définir la propriété IsExternal (JavaScript: IsExternal) de l’objet NavigationNodeCreationInformation (JavaScript: NavigationNodeCreationInformation) sur la valeur true avant d’appeler la méthode Add(NavigationNodeCreationInformation) (JavaScript: add(parameters)).

Pour plus d’informations sur la création d’objets clients dans le contexte d’une application Silverlight, voir Utilisation du modèle objet Silverlight.

Voir aussi

Concepts

Procédure : travailler avec des sites Web

Procédure : créer, mettre à jour et supprimer des listes

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

Procédure : utiliser des utilisateurs et des groupes

Hiérarchie et identité du modèle objet

Contexte de client en tant qu’objet central

Objets clients, objets de valeur et propriétés scalaires

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

Directive du modèle objet client

Différences entre les modèles objets managés et les modèles objets ECMAScript

Tâches courantes de programmation

Autres ressources

Bibliothèque de classes Client

Bibliothèque de classes ECMAScript

Utilisation du modèle objet de client géré SharePoint Foundation 2010

Centre de ressources pour le modèle objet client (éventuellement en anglais)