DataTable转拼EasyUI Tree

新手学Jquery EasyUI—-DataTable转拼EasyUI Tree

分类:【EasyUI】

在做系统的时候,有一些组织机构类的关系,成树状结构,前台用的是EasyUI,由于涉及到多张表的数据,想要动态的拼接出一个树状的组织结构,后台传过来的是DataTable。

DataTable转EasyUiTree的Json格式 要转化的表父节点对应字段父节点的值,默认为”0″ID对应的字段Name对应的字段是否是父节点对应的字段是否选择父节点,有单选框、复选框的时候用;true:checkbox radio 可以选择父节点/子节点;false:radio 只能选择叶子节点(DataTable dt){StringBuilder sb = new StringBuilder();string filter = string.Format(“{0}='{1}'”, “system_id”, 0); //获取顶级目录DataRow[] drs = dt.Select(filter);if (drs.Length < 1 ){return “”;}sb.Append(“[“);//拼接显示到前台foreach (DataRow item in drs){sb.Append(“{“);sb.AppendFormat(“\”id\”:\”{0}\”,”, item[“system_id”].ToString());sb.AppendFormat(“\”text\”:\”{0}\””, item[“system_name”].ToString());//获取children节点数据string filterDoor = string.Format(“{0}='{1}'”, “system_id”, 2);DataRow[] drDoor = dt.Select(filterDoor);string systemid = drDoor[0][“system_id”].ToString();DoorGuardSystemBLL doorGuardSystemBLL = new DoorGuardSystemBLL();DataTable dtDoor = doorGuardSystemBLL.GetSystemDomain(int.Parse(systemid));//拼接到父节点下if (dtDoor.Rows.Count < 1){return “”;}else{sb.Append(“,\”children\”:[“);foreach (DataRow itemSon in dtDoor.Rows){sb.Append(“{“);sb.AppendFormat(“\”id\”:\”{0}\”,”, itemSon[“domain_id”].ToString());sb.AppendFormat(“\”text\”:\”{0}\””, itemSon[“domain_name”].ToString());sb.Append(“},”);}if (sb.ToString().EndsWith(“,”)){sb.Remove(sb.Length – 1, 1);}sb.Append(“]”);}sb.Append(“},”);}if (sb.ToString().EndsWith(“,”)){sb.Remove(sb.Length – 1, 1);}sb.Append(“]”);return sb.ToString();}

拼接Tree的时候,一定要注意一些标点的东西,错了的话他也不会给提示,但也不显示数据,考验细心的地方。

刚开始拼的时候,一点头绪都没有,在网上搜的赶脚有点复杂,看不懂,然后自己就一级一级的往下拼,虽然说现在的循环有点多,而且这只是两层的结构,但是自己摸索出来的东西就是有成就感,以后再优化,,先这么用着。大家也可以试试!

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇ITOO高校云平台V3.1–项目总结(一)

顶1踩0

有时我们选择改变,并非经过深思熟虑,

DataTable转拼EasyUI Tree

相关文章:

你感兴趣的文章:

标签云: