using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Microsoft.SharePoint;
namespace WebStructure
{
public partial class _Default : System.Web.UI.Page
{
private string strWebUrl = ConfigurationManager.AppSettings["WebUrl"];
protected void Page_Load(object sender, EventArgs e)
{
BindSite();
}
/// <summary>
/// 绑定Site(主Web)
/// </summary>
private void BindSite()
{
using (SPWeb sPWeb = new SPSite(strWebUrl).OpenWeb())
{
TreeNode tn = new TreeNode();
tn.Text = sPWeb.Title;
BindLists(tn, sPWeb);// 绑定列表
BindChildWebs(tn, sPWeb);// 绑定子Webs
tvwStructure.Nodes.Add(tn);
tvwStructure.CollapseAll();
}
}
/// <summary>
/// 绑定子Webs
/// </summary>
/// <param name="parentNode"></param>
/// <param name="parentSPWeb"></param>
private void BindChildWebs(TreeNode parentNode, SPWeb parentSPWeb)
{
SPWebCollection sPWebCollection = parentSPWeb.Webs;
foreach (SPWeb sPWeb in sPWebCollection)
{
TreeNode tn = new TreeNode();
tn.Text = sPWeb.Title;
BindLists(tn, sPWeb);// 绑定列表
BindChildWebs(tn, sPWeb);//递归绑定子Webs
parentNode.ChildNodes.Add(tn);
}
}
/// <summary>
/// 绑定Lists
/// </summary>
/// <param name="parentNode"></param>
/// <param name="parentSPWeb"></param>
private void BindLists(TreeNode parentNode, SPWeb parentSPWeb)
{
SPListCollection sPListCollection = parentSPWeb.Lists;
foreach (SPList sPList in sPListCollection)
{
TreeNode tn = new TreeNode();
tn.Text = sPList.Title + "(" + sPList.BaseTemplate + ")[" + sPList.ItemCount + "]";
BindFolder(tn, sPList);//绑定一级Folders
parentNode.ChildNodes.Add(tn);
}
}
/// <summary>
/// 绑定一级Folders
/// </summary>
/// <param name="tn"></param>
/// <param name="parentWebId"></param>
/// <param name="parentSPList"></param>
private void BindFolder(TreeNode parentNode, SPList parentSPList)
{
SPFolderCollection sPFolderCollection = parentSPList.RootFolder.SubFolders;
foreach (SPFolder sPFolder in sPFolderCollection)
{
TreeNode tn = new TreeNode();
tn.Text = sPFolder.Name;
BindChildFolder(tn, sPFolder);//绑定子Folders
parentNode.ChildNodes.Add(tn);
}
}
/// <summary>
/// 绑定子Folders
/// </summary>
/// <param name="parentNode"></param>
/// <param name="parentFolder"></param>
private void BindChildFolder(TreeNode parentNode, SPFolder parentSPFolder)
{
SPFolderCollection sPFolderCollection = parentSPFolder.SubFolders;
foreach (SPFolder sPFolder in sPFolderCollection)
{
TreeNode tn = new TreeNode();
tn.Text = sPFolder.Name;
BindChildFolder(tn, sPFolder);//递归绑定子Folders
parentNode.ChildNodes.Add(tn);
}
}
}
}