首页 > 代码库 > 根据SPWeb递推得到地下的所有子网站和List的Json
根据SPWeb递推得到地下的所有子网站和List的Json
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
根据SPWeb递推得到地下的所有子网站和List的Json
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。