<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Main.aspx.cs" Inherits="Manage_Main" %>
网站后台通用管理系统,<%=adminname%>,您好!
<%@ WebHandler Language="C#" Class="GetTreeDataFromDB" %>
using System;
using System.Web;
using System.Configuration;
using System.Data;
using System.Text;
using System.Collections.Generic;
//add
using System.Web.Script.Serialization;
public class GetTreeDataFromDB : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//获取数据库中的分类数据
string fatherid = context.Request.QueryString["father"];
DataTable dt = createDT();
string json = GetTreeJsonByTable(dt, "module_id", "module_name","module_url", "module_fatherid", "0");
context.Response.Write(json);
context.Response.End();
}
#region 根据DataTable生成EasyUI Tree Json树结构
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
///
/// 根据DataTable生成EasyUI Tree Json树结构
///
/// 数据源
/// ID列
/// Text列
/// 节点Url
/// 关系字段
/// 父ID
private string GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string url, string rela, object pId)
{
result.Append(sb.ToString());
sb.Clear();
if (tabel.Rows.Count > 0)
{
sb.Append("[");
string filer = string.Format("{0}='{1}'", rela, pId);
DataRow[] rows = tabel.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"open\"");
if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)
{
sb.Append(",\"children\":");
GetTreeJsonByTable(tabel, idCol, txtCol,url, rela, row[idCol]);
result.Append(sb.ToString());
sb.Clear();
}
result.Append(sb.ToString());
sb.Clear();
sb.Append("},");
}
sb = sb.Remove(sb.Length - 1, 1);
}
sb.Append("]");
result.Append(sb.ToString());
sb.Clear();
}
return result.ToString();
}
#endregion
#region 创建数据
protected static DataTable createDT()
{
DataTable dt = new DataTable();
dt.Columns.Add("module_id");
dt.Columns.Add("module_name");
dt.Columns.Add("module_fatherid");
dt.Columns.Add("module_url");
dt.Columns.Add("module_order");
dt.Rows.Add("C1", "全国", "0", "1.aspx", "1");
dt.Rows.Add("M01", "广东", "C1", "2.aspx", "1");
dt.Rows.Add("M0101", "深圳", "M01", "3.aspx", "100");
dt.Rows.Add("M010101", "南山区", "M0101", "4.aspx", "1000");
dt.Rows.Add("M010102", "罗湖区", "M0101", "", "1001");
dt.Rows.Add("M010103", "福田区", "M0101", "", "1002");
dt.Rows.Add("M010104", "宝安区", "M0101", "", "1003");
dt.Rows.Add("M010105", "龙岗区", "M0101", "", "1004");
dt.Rows.Add("M01010301", "上梅林", "M010103", "", "1002001");
dt.Rows.Add("M01010302", "下梅林", "M010103", "", "1002002");
dt.Rows.Add("M01010303", "车公庙", "M010103", "", "1002003");
dt.Rows.Add("M01010304", "竹子林", "M010103", "", "1002004");
dt.Rows.Add("M01010305", "八卦岭", "M010103", "", "1002005");
dt.Rows.Add("M01010306", "华强北", "M010103", "", "1002006");
dt.Rows.Add("M0102", "广州", "M01", "", "101");
dt.Rows.Add("M010201", "越秀区", "M0102", "", "1105");
dt.Rows.Add("M010202", "海珠区", "M0102", "", "1106");
dt.Rows.Add("M010203", "天河区", "M0102", "", "1107");
dt.Rows.Add("M010204", "白云区", "M0102", "", "1108");
dt.Rows.Add("M010205", "黄埔区", "M0102", "", "1109");
dt.Rows.Add("M010206", "荔湾区", "M0102", "", "1110");
dt.Rows.Add("M010207", "罗岗区", "M0102", "", "1111");
dt.Rows.Add("M010208", "南沙区", "M0102", "", "1112");
return dt;
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
#region 根据DataTable生成EasyUI Tree Json树结构
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
///
/// 根据DataTable生成EasyUI Tree Json树结构
///
/// 数据源
/// ID列
/// Text列
/// 节点Url
/// 关系字段
/// 父ID
private string GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string url, string rela, object pId)
{
result.Append(sb.ToString());
sb.Clear();
if (tabel.Rows.Count > 0)
{
sb.Append("[");
string filer = string.Format("{0}='{1}'", rela, pId);
DataRow[] rows = tabel.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\"");
if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)
{
//点击展开
sb.Append(",\"state\":\"closed\",\"children\":");
GetTreeJsonByTable(tabel, idCol, txtCol,url, rela, row[idCol]);
result.Append(sb.ToString());
sb.Clear();
}
result.Append(sb.ToString());
sb.Clear();
sb.Append("},");
}
sb = sb.Remove(sb.Length - 1, 1);
}
sb.Append("]");
result.Append(sb.ToString());
sb.Clear();
}
return result.ToString();
}
#endregion