树呈现
public static IList<EasyUiTree> LoadEntityTree(string valueField, string tableName, string nodeSourceKey, string parentKey, string textField, string where = "", string levelField = "", string StrucIdKey = "") { var Dao = GetDao(); string sql = "select * from " + tableName + " where 1=1 " + where; System.Data.DataTable dt = Dao.ExecuteDataSet(new QueryInfo { CustomSQL = sql }).Tables[0]; List<EasyUiTree> trees = new List<EasyUiTree>(); List<string> roots = new List<string>();//第一层节点,即parentid为null的节点 Dictionary<string, EasyUiTree> allnodes = new Dictionary<string, EasyUiTree>(); for (int i = 0; i < dt.Rows.Count; i++) { object parentObj = dt.Rows[i][parentKey]; string id = dt.Rows[i][valueField].ToString(); string text = dt.Rows[i][textField].ToString(); EasyUiTree child = new EasyUiTree(); child.id = id;//#code01 child.text = text; if (allnodes.ContainsKey(id))//非叶节点 { allnodes[id].text = text; } else { allnodes[id] = child; child.children = new List<EasyUiTree>(); } //没上级的为根元素 if (parentObj == null || string.IsNullOrEmpty(parentObj.ToString())) { if (!roots.Contains(id)) { child.children = new List<EasyUiTree>(); roots.Add(id); } } else { //#code02 string parentId = parentObj.ToString(); if (!allnodes.ContainsKey(parentId)) { EasyUiTree e = null; e = new EasyUiTree(); e.id = parentId; e.children = new List<EasyUiTree>(); allnodes.Add(parentId, e); } if (!allnodes.ContainsKey(child.id)) { allnodes[parentId].children.Add(child); } else { allnodes[parentId].children.Add(allnodes[child.id]); } } } foreach (var e in allnodes) { if (roots.Contains(e.Key)) { trees.Add(e.Value); } } return trees; }