Procedimiento para crear, actualizar y eliminar listas
Última modificación: viernes, 29 de abril de 2011
Hace referencia a: SharePoint Foundation 2010
En este artículo
Creación y actualización de una lista
Adición de un campo a una lista
Eliminación de una lista
Disponible en SharePoint Online
La creación, la actualización y la eliminación de listas por medio del modelo de objetos cliente funcionan de manera similar al modo en que se lleva a cabo estas tareas mediante el modelo de objetos servidor. No obstante, las operaciones de cliente no se completarán hasta que se llame al método ExecuteQuery() o al método ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
Creación y actualización de una lista
Para crear un objeto list, use la clase ListCreationInformation (JavaScript: ListCreationInformation) para definir sus propiedades y, posteriormente, pase este objeto al método Add(ListCreationInformation) (JavaScript: add(parameters)) de la clase ListCollection (JavaScript: ListCollection). El siguiente ejemplo crea una nueva lista de anuncios.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class CreateList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
ListCreationInformation listCreationInfo = new ListCreationInformation();
listCreationInfo.Title = "My Announcements List";
listCreationInfo.TemplateType = (int)ListTemplateType.Announcements;
List oList = oWebsite.Lists.Add(listCreationInfo);
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class CreateList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim listCreationInfo As New ListCreationInformation()
listCreationInfo.Title = "My Announcements List"
listCreationInfo.TemplateType = CInt(ListTemplateType.Announcements)
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function createList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
var listCreationInfo = new SP.ListCreationInformation();
listCreationInfo.set_title('My Announcements List');
listCreationInfo.set_templateType(SP.ListTemplateType.announcements);
this.oList = oWebsite.get_lists().add(listCreationInfo);
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oList.get_title() + ' created.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Si necesita actualizar la lista una vez agregada, puede establecer las propiedades de la lista y llamar al método Update() (JavaScript: update()) antes de llamar a ExecuteQuery() o a ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)), como se muestra en las siguientes modificaciones del ejemplo anterior.
.
.
.
.
List oList = oWebsite.Lists.Add(listCreationInfo);
oList.Description = "New Announcements List";
oList.Update();
clientContext.ExecuteQuery();
.
.
.
.
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
oList.Description = "New Announcements List"
oList.Update()
clientContext.ExecuteQuery()
.
.
.
.
this.oList = oWebsite.get_lists().add(listCreationInfo);
oList.set_description('New Announcements List');
oList.update();
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
Adición de un campo a una lista
Use el método Add(Field) (JavaScript: add(field)) o el método AddFieldAsXml(String, Boolean, AddFieldOptions) (JavaScript: addFieldAsXml(schemaXml, addToDefaultView, options)) de la clase FieldCollection (JavaScript: FieldCollection) para agregar un campo a la colección de campos de una lista. En el siguiente ejemplo se crea un campo y, posteriormente, se actualiza antes de llamar a ExecuteQuery() (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class Program
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
SP.Field oField = oList.Fields.AddFieldAsXml("<Field DisplayName='MyField' Type='Number' />",
true, AddFieldOptions.DefaultValue);
SP.FieldNumber fieldNumber = clientContext.CastTo<FieldNumber>(oField);
fieldNumber.MaximumValue = 100;
fieldNumber.MinimumValue = 35;
fieldNumber.Update();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class AddFieldToList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oList As SP.List = clientContext.Web.Lists.GetByTitle("My Announcements List")
Dim oField As SP.Field = oList.Fields.AddFieldAsXml( _
"<Field DisplayName='MyField' Type='Number' />", _
True, AddFieldOptions.DefaultValue)
Dim fieldNumber As SP.FieldNumber = clientContext.CastTo(Of FieldNumber)(oField)
fieldNumber.MaximumValue = 100
fieldNumber.MinimumValue = 35
fieldNumber.Update()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function addFieldToList() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oField = oList.get_fields().addFieldAsXml('<Field DisplayName=\'MyField\' Type=\'Number\' />', true, SP.AddFieldOptions.defaultValue);
var fieldNumber = clientContext.castTo(oField,SP.FieldNumber);
fieldNumber.set_maximumValue(100);
fieldNumber.set_minimumValue(35);
fieldNumber.update();
clientContext.load(oField);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oField.get_title() + ' added.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
El ejemplo anterior usa el método CastTo<T>(ClientObject) (JavaScript: castTo(obj, type)) del objeto del contexto de cliente para convertir al campo en un tipo FieldNumber (JavaScript: FieldNumber), que debe realizarse antes de ejecutar la consulta. De lo contrario, el modelo de objetos cliente no conocerá el tipo real del objeto devuelto oField y, de forma predeterminada, usará Field (JavaScript: Field) como el tipo.
Eliminación de una lista
Para eliminar una lista, llame al método DeleteObject() (JavaScript: deleteObject()) del objeto list, como se muestra en el siguiente ejemplo.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class DeleteList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
List oList = oWebsite.Lists.GetByTitle("My Announcements List");
oList.DeleteObject();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class DeleteList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim oList As List = oWebsite.Lists.GetByTitle("My Announcements List")
oList.DeleteObject()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function deleteList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
this.listTitle = 'My Announcements List';
this.oList = oWebsite.get_lists().getByTitle(listTitle);
oList.deleteObject();
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = listTitle + ' deleted.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Para obtener información y ejemplos acerca de cómo trabajar con listas y otros objetos de cliente dentro del contexto del modelo de objetos de Microsoft SharePoint Foundation 2010 Silverlight, vea Uso del modelo de objetos Silverlight.
Vea también
Conceptos
Instrucciones del modelo de objetos cliente
Introducción a la recuperación de datos
Procedimiento para recuperar listas
Tareas comunes de programación