下面贴上完整的代码,我走了很多弯路,原因就是看了回复中朋友们的代码,现在想起来其实不用那么费事吧。
后台
public string GetFirJson() { string mystr = "["; DataTable dt = DBUtility.db.ExecuteTable("select * from class where parientid=0"); int a = dt.Rows.Count; for (int i = 0; i { mystr += GetOtherJson(Convert.ToInt32(dt.Rows[i]["classid"].ToString())) + ","; } mystr = mystr.Substring(0, mystr.Length - 1); mystr += "]"; mystr = mystr.Replace("'", "\""); return mystr; } //递归 private string GetOtherJson(int pid) { DataTable dt = DBUtility.db.ExecuteTable("select * from class where classid=" + pid); string strjson = ""; bool haschild = IsHasChild(pid); strjson = "{"; strjson += "'id':'" + pid + "',"; strjson += "'text':'" + dt.Rows[0]["classname"].ToString() + "',"; strjson += "'value':'" + dt.Rows[0]["classid"].ToString() + "',"; strjson += " 'showcheck':true,"; strjson += " 'complete':true,"; strjson += "'checktate':0,"; strjson += "'hasChildren':" + haschild.ToString().ToLower() + ","; strjson += "'ChildNodes':"; if (!IsHasChild(pid)) { strjson += "null}"; } else { strjson += "["; DataTable mydt = DBUtility.db.ExecuteTable("select * from class where parientid=" + pid); for (int i = 0; i { strjson += GetOtherJson(Convert.ToInt32(mydt.Rows[i]["classid"].ToString())) + ","; } strjson = strjson.Substring(0, strjson.Length - 1); strjson += "]}"; } return strjson; } private bool IsHasChild(int pid) { DataTable dt = DBUtility.db.ExecuteTable("select * from class where parientid=" + pid); if (dt.Rows.Count == 0) { return false; } else { return true; } }
最后数据库 大家看着建就行了 再次 感谢 不正经哥哥