C#
zTree.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
/// <summary>
/// zTree 的摘要说明
/// </summary>
public class zTree
{
#region 构造函数
public zTree()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#endregion
public string GetModule()
{
string sql = " SELECT m.ID, m.Name, m.ParentID, m.Url, m.Ico FROM Module m ORDER BY m.Level, m.[Index] ";
DataTable dt = Common.GetTable(sql);
string treeJson = DtToJson(dt, " ParentID ", " 0 ", " ID ", " Name ").Substring( 12);
return treeJson;
}
// json处理
public static string DtToJson(DataTable dt, string pField, string pValue, string kField, string TextField)
{
StringBuilder sb = new StringBuilder();
string filter = String.Format( " {0}='{1}' ", pField, pValue); // 获取顶级目录.
DataRow[] drs = dt.Select(filter);
if (drs.Length < 1)
return "";
sb.Append( " ,\"children\":[ ");
foreach (DataRow dr in drs)
{
string pcv = dr[kField].ToString();
sb.Append( " { ");
sb.AppendFormat( " \"name\":\"{0}\", ", dr[TextField].ToString());
sb.AppendFormat( " \"id\":\"{0}\", ", dr[kField].ToString());
sb.AppendFormat( " \"pId\":\"{0}\", ", dr[kField].ToString());
sb.AppendFormat( " \"url\":\"{0}\", ", " http://www.baidu.com ");
sb.AppendFormat( " \"icon\":\"{0}\", ", "");
sb.AppendFormat( " \"open\":\"{0}\", ", true);
sb.AppendFormat( " \"checked\":\"{0}\" ", false);
sb.Append(DtToJson(dt, pField, pcv, kField, TextField).TrimEnd( ' , '));
sb.Append( " }, ");
}
if (sb.ToString().EndsWith( " , "))
{
sb.Remove(sb.Length - 1, 1);
}
sb.Append( " ] ");
return sb.ToString();
}
}
Common.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Common
{
public Common()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static DataTable GetTable( string sql)
{
string strConn = @" Provider=SQLOLEDB;Data Source=127.0.0.1\SQLEXPRESS;Initial Catalog=a;User Id=sa;Password=123456; ";
DataSet ds = new DataSet();
DataTable dt = new DataTable();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
if (conn.State != ConnectionState.Open)
conn.Open();
OleDbCommand comm = new OleDbCommand(sql, conn);
OleDbDataAdapter da = new OleDbDataAdapter(comm);
da.Fill(ds);
if (conn.State != ConnectionState.Closed)
conn.Close();
}
dt = ds.Tables[ 0];
return dt;
}
}
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Common
{
public Common()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static DataTable GetTable( string sql)
{
string strConn = @" Provider=SQLOLEDB;Data Source=127.0.0.1\SQLEXPRESS;Initial Catalog=a;User Id=sa;Password=123456; ";
DataSet ds = new DataSet();
DataTable dt = new DataTable();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
if (conn.State != ConnectionState.Open)
conn.Open();
OleDbCommand comm = new OleDbCommand(sql, conn);
OleDbDataAdapter da = new OleDbDataAdapter(comm);
da.Fill(ds);
if (conn.State != ConnectionState.Closed)
conn.Close();
}
dt = ds.Tables[ 0];
return dt;
}
}
Handler.ashx
<%@ WebHandler Language=
"
C#
" Class=
"
Handler
" %>
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = " text/plain ";
string method = context.Request[ " action "];
switch (method)
{
case " GetModule ":
{
string a = context.Request.Params[ " id "]; // 参数为id
zTree zTree = new zTree();
context.Response.Write(zTree.GetModule());
break;
}
default:
break;
}
}
public bool IsReusable {
get {
return false;
}
}
}
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = " text/plain ";
string method = context.Request[ " action "];
switch (method)
{
case " GetModule ":
{
string a = context.Request.Params[ " id "]; // 参数为id
zTree zTree = new zTree();
context.Response.Write(zTree.GetModule());
break;
}
default:
break;
}
}
public bool IsReusable {
get {
return false;
}
}
}
aspx
<ul id=
"
treeDemo
"
class=
"
ztree
"></ul>
js
var setting = {
data: {
simpleData: {
enable: true
}
}
};
function createTree () {
var zNodes;
$.ajax({
url: ' Handler.ashx?action=GetModule ', // url action是方法的名称
data: { id: " 11 " },
type: ' POST ',
dataType: " text ", // 可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可是设置为json
ContentType: " application/json; charset=utf-8 ",
success: function(data) {
zNodes = data;
$.fn.zTree.init($( " #treeDemo "), setting, eval( ' ( ' + zNodes + ' ) '));
},
error: function(msg) {
alert( " 失败 ");
}
});
}
$(document).ready(function() {
createTree();
});