Compartir a través de


Procedimiento para agregar o eliminar una lista en varios sitios web

Puede usar uno de los métodos Add de la clase SPListCollection para agregar una lista a varios sitios web de una colección de sitios.

En el siguiente ejemplo se crea una lista genérica en cada sitio web, basada en el título y la descripción que se pasan desde los dos cuadros de texto al código. La propiedad AllWebs de la clase SPSite se usa para devolver la colección de todos los sitios web existentes en el sitio.

En el ejemplo se presupone la existencia de dos cuadros de texto en la página .aspx que contiene un formulario.

Dim listTitle As String = TextBox1.Text.ToString()
Dim listDescription As String = TextBox2.Text.ToString()

Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb

For Each web In  allWebs
    Dim allLists As SPListCollection = web.Lists
    allLists.Add(listTitle, listDescription, SPListTemplateType.GenericList)
Next web
string listTitle = TextBox1.Text.ToString();
string listDescription = TextBox2.Text.ToString();

SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;

foreach (SPWeb web in allWebs)
{
    SPListCollection allLists = web.Lists;
    allLists.Add(listTitle,listDescription, SPListTemplateType.GenericList);
}

En el ejemplo anterior se requiere una directiva de using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

Si desea eliminar una lista de cada sitio web en que aparece, use el método Delete de la clase SPListCollection. En el siguiente ejemplo se usan bucles anidados para ver los detalles de una lista con un título que coincida con el título especificado en un cuadro de texto. En el ejemplo se presupone la existencia de un cuadro de texto en la página .aspx que contiene un formulario.

Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb

For Each web In  allWebs
    Dim allLists As SPListCollection = web.Lists
    Dim i As Integer

    For i = 0 To allLists.Count - 1
        Dim list As SPList = allLists(i)

        If list.Title = TextBox1.Text Then
            Dim listGuid As Guid = list.ID
            allLists.Delete(listGuid)
        End If
    Next i
Next web
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;

foreach (SPWeb web in allWebs)
{
    SPListCollection allLists = web.Lists;

    for (int i=0; i<allLists.Count; i++)
    {
        SPList list = allLists[i];

        if (list.Title == TextBox1.Text)
        {
            Guid listGuid = list.ID;
            allLists.Delete(listGuid);
        }
    }
}

En el ejemplo, la propiedad Title de la clase SPList se usa para identificar una lista de la colección de listas para cada sitio web que coincida con el título especificado. La propiedad ID devuelve el identificador único global (GUID) de la lista, que se pasa como el parámetro para el método Delete.

En el ejemplo anterior se requiere una directiva de using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.

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