1、先看效果
2、需要使用層級json格式,如:
3、先不要着急怎么去實現它,先來想想怎么用對象來描述它
4、代碼
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { JavaScriptSerializer jss = new JavaScriptSerializer(); List<JsonClass> list = LinqJsonTree(0); list.Insert(0, new JsonClass() { id = -1, children = null, CheckedInfo = true, pid = -1, text = "--請選擇--" }); string jsonTree = jss.Serialize(list); string action = Request["action"] ?? ""; if (action == "load") { Response.Write(jsonTree.Replace("CheckedInfo", "checked")); Response.End(); } } } //遞歸 public List<JsonClass> LinqJsonTree(int parentId) { List<RightInfo> classList = new RightInfoMan().GetMenus(parentId); List<JsonClass> jsonData = new List<JsonClass>(); classList.ForEach(item => { jsonData.Add(new JsonClass { id = item.Id, CheckedInfo = (item.Id == 11), children = LinqJsonTree(item.Id), pid = item.ParentId, text = item.MenuName }); }); return jsonData; }
總結:有時候用別樣的方法去實現一個問題 會有趣很多