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

Centro de recursos del modelo de objetos de cliente