A SharePoint 2007 (MOSS/WSS) WebPart to show up all subsites under a site


Here is the code for the WebPart:


 


using System;


using System.Runtime.InteropServices;


using System.Web.UI;


using System.Web.UI.WebControls.WebParts;


using System.Xml.Serialization;


 


using Microsoft.SharePoint;


using Microsoft.SharePoint.WebControls;


using Microsoft.SharePoint.WebPartPages;


 


namespace ListSubSites


{


    [Guid("e96ea212-f44b-4d16-886d-e8fe7d389a7a")]


    public class ListSubSites : System.Web.UI.WebControls.WebParts.WebPart


    {


 


        string output = "<table border=\"0\">";


     


        protected override void CreateChildControls()


        {


            base.CreateChildControls();


            SPSite site = new SPSite("http://<Your site URL>/");


            SPWeb web = site.OpenWeb();


            SPWebCollection subSites = web.Webs;


            foreach (SPWeb subSite in subSites)


            {


                output += "<tr><td><a href=\"" + subSite.Url + "\"/>" + subSite.Title + "</a></td></tr>";


            }


            output += "</table>";


        }


       


        protected override void Render(HtmlTextWriter writer)


        {


            // TODO: add custom rendering code here.


            EnsureChildControls();


            writer.Write(output);     


        }


       


    }


}


Comments (3)

  1. MOSS 2007 User says:

    Ok tell me how I can use this code in my MOSS 2007 site, may be as webpart os something to show only subsites and not other contenets?

    Thanks

  2. Paulos says:

    Hi there,

    I was just wondering why you import

    using Microsoft.SharePoint.WebControls;

    using Microsoft.SharePoint.WebPartPages;

    then inherit

    System.Web.UI.WebControls.WebParts.WebPart?

    Cheers

Skip to main content