html代碼:
<input id="Series" name="Series" class="easyui-combotree" method='get'/>
js代碼:
$(document).ready(function () {
$('#Series').combotree({
//需要返回的json格式
//data: [
// {
// "id": "222", "text": "黑色系列",
// "children": [
// { "id": "280", "text": "黑1"},
// { "id": "282", "text": "黑2"}
// ]
// },
// {
// "id": "225", "text": "白色系列",
// "children": [{ "id": "281", "text": "白1" },
// { "id": "283", "text": "白2" }
// ]
// }],
//請求數據的一般處理程序的路徑
url: getRootPath() + '/handler/Page/Product/ProductClassify.ashx?action=MList',
multiple: false,//是否有多選框
lines: true//選項前是否顯示虛線
});
});
一般處理程序:
<%@ WebHandler Language="C#" Class="ProductClassify" %>
using System;
using System.Web;
using System.Data;
using System.Text;
using System.Web.Script.Serialization;
public class ProductClassify : IHttpHandler {
HttpContext Context = null;
JiaSoft.BLL.Classify_BLL PClassiyList = new JiaSoft.BLL.Classify_BLL();
public void ProcessRequest (HttpContext context) {
Context = context;
string action = context.Request["action"].ToString();
responseAction(action);
}
private void responseAction(string action)
{
if (action.Equals("MList")) //獲得多級列表
{
InitComboTree(Context, PClassiyList);
}
}
//初始化ComboTree數據
public void InitComboTree(HttpContext context, JiaSoft.BLL.Classify_BLL PClassiyList)
{
DataTable dt;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
//數據庫設計名稱、id、父類id 初始化先獲取父類id=0的數據集,返回數據是DataTable類型
dt = PClassiyList.GetList(" Mtype=102 and ParentID=0 ").Tables[0];
string sbs =string.Empty;
if (dt == null)
{
sbs= "[]";
}
StringBuilder builder = new StringBuilder();
builder.Append("[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
builder.Append("{");
builder.Append("\"id\":" + new JavaScriptSerializer().Serialize(dt.Rows[i]["ClassifyID"].ToString()));
builder.Append(",");
builder.Append("\"text\":" + new JavaScriptSerializer().Serialize(dt.Rows[i]["CodeName"].ToString()));
builder.Append(",");
//調用遞歸方法
builder = InitChild(builder, dt.Rows[i]["ClassifyID"].ToString(), PClassiyList);
builder.Append("}");
if (i < (dt.Rows.Count - 1))
{
builder.Append(",");
}
}
}
builder.Append("]");
sbs = builder.ToString();
Context.Response.Write(sbs);
}
//遞歸子類
public StringBuilder InitChild(StringBuilder builder, string parentID, JiaSoft.BLL.Classify_BLL PClassiyList)
{
DataTable dt = PClassiyList.GetList(" Mtype=102 and ParentID=" + parentID ).Tables[0];
if (dt == null)
{
builder.Append("");
}
builder.Append("\"children\":[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
builder.Append("{");
builder.Append("\"id\":" + new JavaScriptSerializer().Serialize(dt.Rows[i]["ClassifyID"].ToString()));
builder.Append(",");
builder.Append("\"text\":" + new JavaScriptSerializer().Serialize(dt.Rows[i]["CodeName"].ToString()));
builder.Append(",");
builder = InitChild(builder, dt.Rows[i]["ClassifyID"].ToString(), PClassiyList);
builder.Append("}");
if (i < (dt.Rows.Count - 1))
{
builder.Append(",");
}
}
}
builder.Append("]");
return builder;
}
public bool IsReusable {
get {
return false;
}
}
}
效果圖:
