Creación de objetos cliente
Última modificación: viernes, 27 de mayo de 2011
Hace referencia a: SharePoint Foundation 2010
Disponible en SharePoint Online
Si se puede crear un objeto cliente, como un objeto List (JavaScript: List), su colección de objetos cliente correspondiente, como ListCollection (JavaScript: ListCollection), tiene un método Add que acepta un objeto ClientObjectCreationInformation, por ejemplo, ListCreationInformation (JavaScript: ListCreationInformation), que contiene toda la información requerida para crear el nuevo objeto.
El ejemplo siguiente usa WebCreationInformation (JavaScript: WebCreationInformation) con el método Add(WebCreationInformation) (JavaScript: add(parameters)) para crear un sitio web secundario bajo un sitio web específico.
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());
}
En el ejemplo anterior, el método Add(WebCreationInformation) (JavaScript: add(parameters)) crea un sitio web inmediatamente en la colección de objetos cliente, sin esperar la recuperación de datos de la colección subsiguiente ni una llamada a ExecuteQuery() o ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
Puede usar un objeto ClientObjectCreationInformation para crear numerosos objetos. La creación de un nodo de navegación, por ejemplo, también implica usar un objeto ClientObjectCreationInformation. En el ejemplo siguiente se define un nodo de navegación por medio de un objeto NavigationNodeCreationInformation (JavaScript: NavigationNodeCreationInformation), y usa este objeto para agregar un vínculo dentro del área de inicio rápido del sitio web especificado. El ejemplo agrega un vínculo a una lista en otro sitio web como segundo nodo secundario bajo el nodo Lists de primer nivel.
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());
}
En el ejemplo anterior se crea un vínculo a otro sitio web dentro de una colección de sitios. Para crear un vínculo externo a una ubicación fuera de la colección de sitios, establezca la propiedad IsExternal (JavaScript: IsExternal) del objeto NavigationNodeCreationInformation (JavaScript: NavigationNodeCreationInformation) en true antes de llamar al método Add(NavigationNodeCreationInformation) (JavaScript: add(parameters)).
Para obtener información sobre cómo crear objetos cliente en el contexto de una aplicación de Silverlight, vea Uso del modelo de objetos Silverlight.
Vea también
Conceptos
Procedimiento para trabajar con sitios web
Procedimiento para crear, actualizar y eliminar listas
Procedimiento para crear, actualizar y eliminar elementos de lista
Procedimiento para trabajar con usuarios y grupos
Jerarquía e identidad del modelo de objetos
Contexto de cliente como objeto central
Objetos de cliente, objetos valor y propiedades escalares
Introducción a la recuperación de datos
Instrucciones del modelo de objetos cliente
Diferencias entre los modelos de objetos administrados y de ECMAScript
Tareas comunes de programación
Otros recursos
Biblioteca de clases de cliente
Biblioteca de clases de ECMAScript
Uso del modelo de objetos de cliente administrado de SharePoint Foundation 2010