Compartir a través de


Procedimiento para crear o eliminar listas

Para crear una nueva lista, use uno de los métodos Add de la clase SPListCollection.

En el siguiente ejemplo se agrega una nueva lista Generic, Events o Announcements, según los datos proporcionados por el usuario. Se usa una cláusula Switch para determinar el tipo de lista que especifica el usuario y establece el tipo de plantilla de lista en consecuencia.

Nota

Los ejemplos de código de este tema usan miembros de la clase Microsoft.SharePoint.SPContext para obtener la colección de sitios, sitio web o lista actuales. Fuera de un contexto HTTP, como en una aplicación de consola o una aplicación Windows, puede obtener referencias a los objetos clave con un método diferente. Para obtener más información, consulte Obtención de referencias a sitios, aplicaciones web y otros objetos clave.

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim listTitle As String = TextBox1.Text
Dim listDescription As String = TextBox2.Text
Dim listType As String = ListBox1.SelectedItem.Text

Dim listTemplateType As New SPListTemplateType()

Select Case listType
    Case "Generic List"
        listTemplateType = SPListTemplateType.GenericList
        Exit 
    Case "Events"
        listTemplateType = SPListTemplateType.Events
        Exit
    Case "Announcements"
        listTemplateType = SPListTemplateType.Announcements
        Exit 
End Select
lists.Add(listTitle, listDescription, listTemplateType)
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;

string listTitle = TextBox1.Text;
string listDescription = TextBox2.Text;
string listType = ListBox1.SelectedItem.Text;

SPListTemplateType listTemplateType = new SPListTemplateType();

switch(listType)
{
    case "Generic List":
    {
        listTemplateType = SPListTemplateType.GenericList;
        break;
    }

    case "Events":
    {
        listTemplateType = SPListTemplateType.Events;
        break;
    }

    case "Announcements":
    {
        listTemplateType = SPListTemplateType.Announcements;
        break;
    }
}

lists.Add(listTitle, listDescription, listTemplateType);

El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

En el ejemplo se crea una instancia de un objeto SPListTemplateType que contenga el tipo de plantilla de lista especificada por el usuario. Este objeto se debe pasar como parámetro en el método Add. En el ejemplo se presupone la existencia de dos cuadros de texto donde el usuario puede escribir un título y una descripción, así como una lista desplegable que muestra los tipos de lista entre los que puede seleccionar el usuario.

Además de usar la enumeración SPListTemplateType para crear una lista, también puede crear una lista a partir de un objeto SPListTemplate. Se puede usar la propiedad ListTemplates de la clase SPWeb para devolver una colección de objetos de plantilla de lista y se puede usar un indizador de nombres para especificar la plantilla de lista que se va a usar. Esto se muestra en el ejemplo siguiente, que presupone la existencia de un sitio de área de reuniones para la toma de decisiones.

Dim mySite As SPWeb = SPContext.Current.Web

Dim template As SPListTemplate = mySite.ListTemplates("Decisions")
mySite.Lists.Add("My Decisions", "This is a list of decisions", 
   template)
SPWeb mySite = SPContext.Current.Web;

SPListTemplate template = mySite.ListTemplates["Decisions"];
mySite.Lists.Add("My Decisions", "This is a list of decisions", 
   template);

El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

Con el método GetCustomListTemplates de la clase SPSite, en el siguiente ejemplo se devuelven las plantillas de lista personalizadas para un sitio especificado y se crea una nueva lista basada en una plantilla de lista especificada.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim mySite As SPWeb = SPContext.Current.Web

Dim listTemplates As SPListTemplateCollection 
   = siteCollection.GetCustomListTemplates(mySite)
Dim listTemplate As SPListTemplate 
   = listTemplates("Custom List Template")
mySite.Lists.Add("Custom List", "A list created from 
   a custom list template in the list template catalog", listTemplate)
SPSite siteCollection = SPContext.Current.Site;
SPWeb mySite = SPContext.Current.Web;

SPListTemplateCollection listTemplates 
   = siteCollection.GetCustomListTemplates(mySite);
SPListTemplate listTemplate = listTemplates["Custom List Template"];
mySite.Lists.Add("Custom List", "A list created from 
   a custom list template in the list template catalog", listTemplate);

El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

Para eliminar una lista, debe especificar el GUID de la lista como el parámetro del método Delete. Use la propiedad ID de la clase SPList para buscar el GUID.

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim list As SPList = lists(TextBox1.Text)
Dim listGuid As System.Guid = list.ID

lists.Delete(listGuid) 
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;

SPList list = lists[TextBox1.Text];
System.Guid listGuid = list.ID;

lists.Delete(listGuid);

El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

En el ejemplo se presupone la existencia de un cuadro de texto en el que el usuario especifica el nombre de la lista.

Vea también

Referencia

Microsoft.SharePoint

Otros recursos

Trabajar con objetos de listas y colecciones
Introducción a la personalización mediante programación de un sitio web de SharePoint en Visual Studio
Validación de seguridad y realización de envíos para actualizar datos
Concesión de privilegio