<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Text; public class Handler : IHttpHandler { string strConn = @"data source=192.168.0.206;initial catalog=XXXX;user id=sa;password=123456"; public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/json"; string sb= FirstAnsyData2(); context.Response.Write(sb); } public bool IsReusable { get { return false; } } /// <summary> /// 判断当前节点是否还有子节点 /// </summary> /// <param name="ParentId">父节点Id</param> /// <returns>bool类型</returns> public bool isParentTrue(int ParentId) { try { using (SqlConnection conn = new System.Data.SqlClient.SqlConnection(strConn)) { conn.Open(); string sql = "select * from OrginTree where OrgParent =" + ParentId + ""; DataTable table = new DataTable(); SqlDataAdapter dt = new SqlDataAdapter(sql, conn); dt.Fill(table); return table.Rows.Count >= 1 ? true : false; } } catch (Exception) { throw; } } public string FirstAnsyData2() { return GetModuleTreeJson("100"); } /// <summary> /// 生成zTree标准json数据源 /// </summary> /// <param name="parent_id">父节点</param> /// <returns></returns> public string GetModuleTreeJson(string parent_id) { StringBuilder jsonTree = new StringBuilder(); string where = string.Format(" and ORgParent={0}", parent_id); DataTable ds = getModuleList(where); if (ds.Rows.Count > 0) { jsonTree.Append("["); for (int i = 0; i < ds.Rows.Count; i++) { DataRow dr = ds.Rows[i]; jsonTree.Append("{"id":"").Append(dr["OrgId"]).Append("","); jsonTree.Append(""name":"").Append(dr["OrgName"]).Append("","); if (isParentTrue(int.Parse(dr["OrgId"].ToString()))) { jsonTree.Append(""children":").Append(GetModuleTreeJson(dr["OrgId"].ToString())); } else { jsonTree.Remove(jsonTree.Length - 1, 1); } jsonTree.Append("},"); if (i == (ds.Rows.Count - 1)) { jsonTree.Remove(jsonTree.Length - 1, 1); } } jsonTree.Append("]"); } else { jsonTree.Append(""""); } return jsonTree.ToString(); } public DataTable getModuleList(string whe) { DataTable ds = new System.Data.DataTable(); try { using (SqlConnection conn = new SqlConnection(strConn)) { conn.Open(); string sql = "select * from OrginTree where 1=1 " + whe;// where OrgParent is null"; SqlDataAdapter dt = new SqlDataAdapter(sql, conn); dt.Fill(ds); conn.Close(); } } catch (Exception) { } return ds; } }