将DataTable转换成EasyUITree的json格式

#region DataTable转EasyUiTree的Json格式/// <summary>/// DataTable转EasyUiTree的Json格式/// </summary>/// <param name="dt">要转化的表</param>/// <param name="pField">父节点对应字段</param>/// <param name="pValue">父节点的值,默认为"0"</param>/// <param name="idField">ID对应的字段</param>/// <param name="nameField">Name对应的字段</param>/// <param name="isParentField">是否是父节点对应的字段</param>/// <param name="isChooseParentNode">是否选择父节点,有单选框、复选框的时候用;true:checkbox radio 可以选择父节点/子节点;false:radio 只能选择叶子节点</param>/// <returns></returns>public static string DataTableToJsonElecViewTree(DataTable dt){AlarmManagerBLL AlarmManagerSystemBLL = new AlarmManagerBLL();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 filterAlarm = string.Format("{0}='{1}'", "system_id", 3);DataRow[] drAlarm = dt.Select(filterAlarm);string systemid = drAlarm[0]["system_id"].ToString();DataTable dtAlarm = AlarmManagerSystemBLL.GetSystemDomain(int.Parse(systemid));//拼接到父节点下if (dtAlarm.Rows.Count < 1){return "";}else{sb.Append(",\&;children\&;:[");foreach (DataRow itemSon in dtAlarm.Rows){sb.Append("{");sb.AppendFormat("\&;id\&;:\&;{0}\&;,", itemSon["domain_id"].ToString());sb.AppendFormat("\&;text\&;:\&;{0}\&;", itemSon["domain_name"].ToString());//获取第三级children把表中的Id取出来string strDomainType = itemSon["domain_id"].ToString();DataTable dtDomainType = AlarmManagerSystemBLL.GetDeviceType(int.Parse(strDomainType), int.Parse(systemid));if (dtDomainType.Rows.Count >= 1){sb.Append(",\&;children\&;:[");foreach (DataRow itemDomainType in dtDomainType.Rows){sb.Append("{");sb.AppendFormat("\&;id\&;:\&;{0}\&;,", itemDomainType["device_type_id"].ToString());sb.AppendFormat("\&;text\&;:\&;{0}\&;", itemDomainType["device_type_ch_name"].ToString());//获取第四级children把表中的Id取出来string strDeviceType = itemDomainType["device_type_id"].ToString();DataTable dtDeviceType = AlarmManagerSystemBLL.GetDevice(int.Parse(strDeviceType), int.Parse(systemid));if (dtDeviceType.Rows.Count >= 1){sb.Append(",\&;children\&;:[");foreach (DataRow itemDeviceType in dtDeviceType.Rows){sb.Append("{");sb.AppendFormat("\&;id\&;:\&;{0}\&;,", itemDeviceType["device_id"].ToString());sb.AppendFormat("\&;text\&;:\&;{0}\&;", itemDeviceType["device_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("]");}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();}#endregion

上面的代码是对如何将datatable格式的数据拼接easyui的树的学习,只是初步了解,如何灵活运用还需要进一步实践。主要的问题在于根据条件从datatable中筛选树的节点。另外就是要注意easyui-tree需要的格式,具体的easyui-tree的js以及html代码就不再展示。在编程的过程中站在巨人的肩膀上是很重要的前提条件,,如果想进一步的提升自我,还需要多总结,编辑知识网。

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

生命不息,奋斗不止,就像我们常说的一句话;

将DataTable转换成EasyUITree的json格式

相关文章:

你感兴趣的文章:

标签云: