Iterate all the sharepoint site collection and sub sites and create drill down menu

StackOverflow https://stackoverflow.com/questions/16806678

  •  30-05-2022
  •  | 
  •  

سؤال

I need to iterate all the site collection under the web application and sub sites under the site collection and create share point drill down menu.

هل كانت مفيدة؟

المحلول

public class _starter : MasterPage
{
    protected Menu CustomMenu;

    protected void Page_Load(object sender, EventArgs e)
    {
        using (SPSite site = new SPSite(SPContext.Current.Site.Url))
        {
            SPWebApplication webapp = site.WebApplication;
            CustomMenu.Items.Clear();
            BeginProcess(webapp);
        }
    }

    public void BeginProcess(SPWebApplication webApp)
    {
        //Iterate through each site collection inside the web application
        //Iterate through each site collection inside the site collection 
        foreach (SPSite site in webApp.Sites)
        {
            using (SPWeb oSPWeb = site.OpenWeb())
            {
                if (oSPWeb.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
                {
                    MenuItem parentMenuItem = new MenuItem(oSPWeb.Title, oSPWeb.Title, "", oSPWeb.Url);
                    CustomMenu.Items.Add(parentMenuItem);
                    if (oSPWeb.Webs.Count > 0)
                    {
                        RecursiveWebCheck(oSPWeb, parentMenuItem);
                    }
                }
            }
        }
    }

    private void RecursiveWebCheck(SPWeb parentoSPWeb, MenuItem parentMenuItem)
    {
        foreach (SPWeb web in parentoSPWeb.Webs)
        {
            MenuItem childMenuItem = new MenuItem(web.Title, web.Title, "", web.Url);
            parentMenuItem.ChildItems.Add(childMenuItem);
            RecursiveWebCheck(web, childMenuItem);
            web.Dispose();
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top