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)