Tareas de sitio web de SharePoint
Para trabajar con sitios web con JavaScript, se debe comenzar utilizando el constructor ClientContext(serverRelativeUrl) y pasarle la dirección URL o URI para que devuelva un contexto de solicitud específico el sitio web.
A continuación se muestra el título y la descripción del sitio web especificado, aunque el resto de las propiedades devueltas de forma predeterminada se ponen a disposición después de cargar el objeto de sitio web y ejecutar la consulta.
Recuperar las propiedades de un sitio web
Use la propiedad web de la clase ClientContext para especificar las propiedades del objeto de sitio web que se encuentra en la dirección URL del contexto especificado. Después de cargar el objeto de sitio web con el método load(clientObject) y, posteriormente, llamar a executeQueryAsync(succeededCallback, failedCallback), se obtendrá acceso a todas las propiedades de ese sitio web.A continuación se muestra el título y la descripción del sitio web especificado, aunque el resto de las propiedades devueltas de forma predeterminada se ponen a disposición después de cargar el objeto de sitio web y ejecutar la consulta.
function retrieveWebSite(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); clientContext.load(this.oWebsite); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Description: ' + this.oWebsite.get_description()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
Recuperar solo las propiedades seleccionadas de un sitio web
Para reducir la transferencia de datos innecesaria entre cliente y servidor, es posible devolver solo las propiedades especificadas del objeto de sitio web, en lugar de todas sus propiedades. En este caso, se usa la sintaxis de la expresión lambda o consulta LINQ con el método load(clientObject) para especificar las propiedades que se van a devolver desde el servidor.
A continuación, solo se ponen a disposición el título y la fecha de creación del objeto de sitio web después de llamar a executeQueryAsync(succeededCallback, failedCallback).
function retrieveWebSiteProperties(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); clientContext.load(this.oWebsite, 'Title', 'Created'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Created: ' + this.oWebsite.get_created()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
Escribir en las propiedades de un sitio web
Para modificar un sitio web, se deben establecer las propiedades y llamar al método update(), de manera similar al modo en que funciona el modelo de objetos de servidor. Sin embargo, en el modelo de objetos de cliente, debe llamar a executeQueryAsync(succeededCallback, failedCallback) para solicitar el procesamiento por lotes para todos los comandos que se especifiquen.
A continuación se cambia el título y la descripción de un sitio web especificado.
function updateWebSite(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); this.oWebsite.set_title('Updated Web Site'); this.oWebsite.set_description('This is an updated Web site.'); this.oWebsite.update(); clientContext.load(this.oWebsite, 'Title', 'Description'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Description: ' + this.oWebsite.get_description()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
No hay comentarios.:
Publicar un comentario