1.开发缘由
其实这样的工具很多,在网站中一点点看也是大概能够了解的。但是属于强迫症,总想看一下所有。
2.设计思路
开始是想做成思维导图的模式,jQuery插件,Html都搜过,结果只找到了http://qunee.com/buy.html。有什么办法呢,只能随便找个tree显示。
Json拼写开始以为收到擒来,结果写逻辑生疏的我竟然写了两三个小时。
公布出来大家一起学习吧。
3.代码部分
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
public partial class _Default : System.Web.UI.Page
{
public string strr;
bool IsAddList = true;
string path = "http://xxxx18:8099/1234/";
protected void Page_Load(object sender, EventArgs e)
{
strr = GetJsonFormWeb(path);
strr = "[" + strr + "]";
}
public string GetJsonFormWeb(string path)
{
string jsonStr = "";
SPSecurity.RunWithElevatedPrivileges(delegate
{
using (SPSite site = new SPSite(path))
{
using (SPWeb web = site.OpenWeb())
{
if (web.Webs.Count>0)
{
for (int i = 0; i < web.Webs.Count; i++)
{
jsonStr += "{text:'" + "Web " + (i+1).ToString() + "----" + web.Webs[i].Name + "'";
if (web.Webs[i].Webs.Count > 0)
{
jsonStr += ",children: [";
jsonStr += GetJsonFormWeb(web.Webs[i].Url);
if (IsAddList && web.Webs[i].Lists.Count > 0)
{
jsonStr +="," + GetListJson(web.Webs[i]);
}
jsonStr += "]";
}
else
{
if (IsAddList && web.Lists.Count > 0)
{
jsonStr += ",children: [";
jsonStr += GetListJson(web.Webs[i]);
jsonStr += "]";
}
}
//if (web.Webs[i].Webs.Count > 0 && web.Webs[i].Lists.Count > 0)
//{
// jsonStr += ",";
//}
jsonStr += "}";
if (i < web.Webs.Count - 1)
{
jsonStr += ",";
}
}
}
else
{
if (web.Lists.Count > 0 && IsAddList)
{
jsonStr += ",children: [";
jsonStr += GetListJson(web);
jsonStr += "]";
}
}
if (web.Webs.Count > 0 && web.Lists.Count > 0 && IsAddList)
{
jsonStr += "," + GetListJson(web);
}
}
}
});
return jsonStr;
}
public string GetListJson(SPWeb web)
{
if (!IsAddList)
{
return "";
}
string str = "";
if (web.Lists.Count>0)
{
for (int i = 0; i < web.Lists.Count; i++)
{
if (web.Lists[i].Title.Trim().Length>0)
{
str += "{text:'" + web.Lists[i].Title + "'}";
if (i < web.Lists.Count - 1)
{
str += ",";
}
}
}
}
return str;
}
}
4.源码:
开发工具:VS2005
http://app.yinxiang.com/shard/s12/sh/765c7019-04ec-4efd-9f83-8e4d0e068c6b/dbab5493b8c06753d4cd6779ec929067