Compartir a través de


Procedimiento para devolver sitios y colecciones de sitios

Es posible devolver todos los sitios web dentro de una colección de sitios, todos los subsitios de primer nivel bajo un sitio web, todos los subsitios y listas para el sitio web actual, o la colección de colecciones de sitios en una aplicación web de SharePoint, como se muestra en los ejemplos siguientes.

Es posible devolver todos los sitios web dentro de una colección de sitios, incluido el sitio de nivel superior y todos los subsitios, mediante la propiedad AllWebs de la clase SPSite. El ejemplo siguiente muestra los títulos de todos los sitios y listas en la colección de sitios actual.

Dim mySite As SPSite = SPContext.Current.Site
Dim subSites As SPWebCollection = mySite.AllWebs
Dim i As Integer

For i = 0 To subSites.Count - 1
    Dim lists As SPListCollection = subSites(i).Lists
    Dim j As Integer

    For j = 0 To lists.Count - 1
        Response.Write(SPEncode.HtmlEncode(subSites(i).Title) 
            & " :: " _ & SPEncode.HtmlEncode(lists(j).Title) & "<BR>")
    Next j
Next i
SPSite mySite = SPContext.Current.Site;
SPWebCollection subSites = mySite.AllWebs;

for (int i=0;i<subSites.Count;i++)
{
    SPListCollection lists = subSites[i].Lists;

    for (int j=0;j<lists.Count;j++)
    {
        Response.Write(SPEncode.HtmlEncode(subSites[i].Title) 
            + " :: " + SPEncode.HtmlEncode(lists[j].Title) + "<BR>");
    }
}

El ejemplo anterior requiere directivas using (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint y Microsoft.SharePoint.Utilities.

Para devolver una lista de todos los subsitios de primer nivel debajo de un sitio web, use la propiedad Webs de la clase SPWeb. El siguiente ejemplo muestra una lista de títulos del subsitio.

Dim mySite As SPWeb = SPContext.Current.Web
Dim sites As SPWebCollection = mySite.Webs
Dim subSite As SPWeb

For Each subSite In  sites
    Response.Write(SPEncode.HtmlEncode(subSite.Title) & "<BR>")
Next subSite
SPWeb mySite = SPContext.Current.Web;
SPWebCollection sites = mySite.Webs;

foreach (SPWeb subSite in sites)
{
    Response.Write(SPEncode.HtmlEncode(subSite.Title) + "<BR>");
}

El ejemplo anterior requiere directivas using (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint y Microsoft.SharePoint.Utilities.

En lugar de usar una instrucción foreach, en el siguiente ejemplo se usan instrucciones for anidadas para mostrar una lista de direcciones URL de subsitios y una lista de títulos.

Dim mySite As SPWeb = SPContext.Current.Web
Dim sites As SPWebCollection = mySite.Webs
Dim i As Integer

For i = 0 To sites.Count - 1
    Dim lists As SPListCollection = sites(i).Lists
    Dim j As Integer

    For j = 0 To lists.Count - 1
        Response.Write(sites(i).Url & " :: " 
            & SPEncode.HtmlEncode(lists(j).Title) & "<BR>")
    Next j
Next i
SPWeb mySite = SPContext.Current.Web;
SPWebCollection sites = mySite.Webs;

for (int i=0;i<sites.Count;i++)
{
    SPListCollection lists = sites[i].Lists;

    for (int j=0;j<lists.Count;j++)
    {
        Response.Write(sites[i].Url + " :: " 
            + SPEncode.HtmlEncode(lists[j].Title) + "<BR>");
    }
}

El ejemplo anterior requiere directivas using (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint y Microsoft.SharePoint.Utilities.

En el siguiente ejemplo se muestran todos los subsitios y listas para el sitio web actual, así como el número de elementos de cada lista. En el ejemplo, se usan instrucciones foreach anidadas para recorrer en iteración las colecciones de sitios web y listas.

Dim mySite As SPWeb = SPContext.Current.Web
Dim sites As SPWebCollection = mySite.Webs
Dim subSite As SPWeb

For Each subSite In  sites
    Response.Write("<B>" & SPEncode.HtmlEncode(subSite.Title) & "</B>" 
        & "<BR>")

    Dim lists As SPListCollection = subSite.Lists
    Dim list As SPList

    For Each list In  lists
        Response.Write(SPEncode.HtmlEncode(list.Title) & " :: " 
           & list.ItemCount & "<BR>")
    Next list
Next subSite 
SPWeb mySite = SPContext.Current.Web;
SPWebCollection sites = mySite.Webs;

foreach (SPWeb subSite in sites)
{
    Response.Write("<B>" + SPEncode.HtmlEncode(subSite.Title) + "</B>" 
        + "<BR>");

    SPListCollection lists = subSite.Lists;

    foreach (SPList list in lists)
    {
        Response.Write(SPEncode.HtmlEncode(list.Title) 
            + " :: " + list.ItemCount + "<BR>");
    }
}

El ejemplo anterior requiere directivas using (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint y Microsoft.SharePoint.Utilities.

Para devolver la colección de colecciones de sitios en una aplicación web de SharePoint, use la propiedad Sites de la clase Microsoft.SharePoint.Administration.SPWebApplication. Use las propiedades de la clase Microsoft.SharePoint.SPContext para devolver la aplicación web actual. El siguiente ejemplo muestra las direcciones URL de todas las colecciones de sitios en la aplicación web actual.

Dim webApplication As SPWebApplication = SPContext.Current.Site.WebApplication
Dim siteCollections As SPSiteCollection = webApplication.Sites
Dim siteCollection As SPSite

For Each siteCollection In siteCollections
   Response.Write(siteCollection.Url + "<BR>")
Next siteCollection
SPWebApplication webApplication = SPContext.Current.Site.WebApplication;
SPSiteCollection siteCollections = webApplication.Sites;

foreach (SPSite siteCollection in siteCollections)
{
   Response.Write(siteCollection.Url + "<BR>");
}

El ejemplo anterior requiere directivas using (Imports en Visual Basic) para los espacios de nombres Microsoft.SharePoint,Microsoft.SharePoint.Administration y Microsoft.SharePoint.Utilities.

En el ejemplo se presupone la existencia de una página .aspx que contiene un control de etiqueta.

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