using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;

namespace WebApplication4
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            CreateSiteNode();
        }

        private void CreateSiteNode()
        {
            try
            {
                // 枚举网站
                SPWebServiceCollection webServices = new SPWebServiceCollection(SPFarm.Local);
                foreach (SPWebService webService in webServices)
                {
                    foreach (SPWebApplication webApp in webService.WebApplications)
                    {
                        foreach (SPSite site in webApp.Sites)
                        {
                            if (site.Url != null && site.Url != string.Empty)
                            {
                                TreeNode rootNode = new TreeNode(site.Url, site.Url);
                                this.tvCatalog.Nodes.Add(rootNode);

                                CreateWebNode(site.RootWeb, rootNode);

                                site.Close();
                                site.Dispose();
                            }
                        }
                    }
                }
            }
            catch
            {

            }
        }

        private void CreateWebNode(SPWeb spweb, TreeNode node)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    foreach (SPWeb web in spweb.Webs)
                    {
                        if (web.Url != null && web.Url != string.Empty)
                        {
                            TreeNode newNode = new TreeNode(web.Title, web.Url);                           
                            node.ChildNodes.Add(newNode);
                            CreateListNode(web, newNode);
                            CreateWebNode(web, newNode);
                        }
                    }

                }
                        );
            }
            catch
            {

            }
        }

        private void CreateListNode(SPWeb spweb, TreeNode node)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    foreach (SPList list in spweb.Lists)
                    {
                        if (list != null && list.TemplateFeatureId.ToString() == "06ee6328-80a3-4ddb-a0cf-9fd488d7452c")
                        {
                            TreeNode newNode = new TreeNode(list.Title, list.DefaultViewUrl);
                            newNode.ShowCheckBox = true;
                            node.ChildNodes.Add(newNode);
                        }
                    }
                }
                );
            }
            catch
            {

            }
        }
    }
}

posted on 2009-04-10 12:26  blogsweb  阅读(160)  评论(0)    收藏  举报