.net easyui treeツリーを生成するjson

2810 ワード

バックグラウンドはeasyui tree用のjson文コードを生成する
[{"ID":"1","text":"       ","children":[{"ID":"2","text":"  ","children":[{"ID":"5","text":"  1","children":[{"ID":"7","text":"  1.1","children":[{"ID":"9","text":"  1.1.1"}]},{"ID":"10","text":"  1.2"}]},{"ID":"6","text":"  2"}]},{"ID":"3","text":"  "},{"ID":"4","text":"  "}]},{"ID":"8","text":"    "}]
private void Page_Load(object sender, System.EventArgs e)
		{
			//                
			string r=Request.QueryString["pid"];
			if(r==null)
				r="root";
			initTree(r);
		}

		#region Web           
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN:      ASP.NET Web          。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// 
		///            -            
		///       。
		/// 
		private void InitializeComponent()
		{    
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion

		/// 
		///     wyw308
		/// 
		/// 
		public void initTree(string pid)
		{
			DataSet ds = Dal.ExcSql.GetDataSet("select t.id,t.name text,t.parentid from jsjd_type t where t.istop=0");//          
			this.ViewState["ds"] = ds;
			Context.Response.Write(AddNode(pid,1));
			Response.End();
		}
		/// 
		///     ,  easyui tree   json   wyw308
		/// 
		///  id
		///     ,   1
		/// 
		private string AddNode(string ParentID,int deep)
		{
			string str="";
			DataSet ds = (DataSet)this.ViewState["ds"];
			
			DataView dvTree = new DataView(ds.Tables[0]);
			dvTree.RowFilter = "[parentid]   ='" + ParentID + "'";//   ParentId
		
			int i=0;
			int d=deep;
			foreach (DataRowView drv in dvTree)
			{
				
				if(i==0)//         ,  “[”  
				{
					if(d==1)//     1,    
						str="[";
					else//  ,       
						str=",\"children\":[";
				}
						
				else
					str=str+",";

			

				str=str+"{";
				str=str+"\"ID\":\""+drv["id"]+"\",";
				str=str+"\"text\":\""+drv["text"]+"\"";
				
				str=str+AddNode(drv["id"].ToString(),deep+1);//  
				
				str=str+"}";
				i=i+1;

				if(dvTree.Count==i)//         ,  "]"  
					str=str+"]";
				
			}
			
			return str;
		}