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; } } }
效果圖: