/// <summary> /// DataTable 转树控件json /// </summary> /// <param name="dt">DataTable</param> /// <returns>转换的TreeJson</returns> private static string DataTable2TreeJson(DataTable dt) { //json格式字符串 var sbjson = new StringBuilder(); sbjson.Append("["); if (dt != null) { var bll = new XT_QX_GNFL(request); var list = bll.DataTableToList(dt); //循环获得的当前级分类节点 foreach (EDRS.Model.XT_QX_GNFL xtQxGnfl in list) { sbjson.Append("{\"id\":\"" + xtQxGnfl.FLBM + "\","); sbjson.Append("\"text\":\"" + xtQxGnfl.FLMC + "\""); //获取当前级节点下级节点 dt = GetFunTypeDataTable(xtQxGnfl.FLBM); if (dt != null && dt.Rows.Count > 0) { sbjson.Append(",\"state\":\"closed\","); //将下级节点转换成json var childrenstr = DataTable2TreeJson(dt); sbjson.Append("\"children\":" + childrenstr); } sbjson.Append("},"); } } var strjson = sbjson.ToString(); strjson = strjson.Substring(0, strjson.Length - 1); strjson += "]"; return(strjson); }
/// <summary> /// 修改页面加载,加载需要修改的分类信息 /// </summary> /// <param name="flbm">分类编码</param> private void EditLoad(string flbm) { //TODO:权限验证 var bllGnfl = new XT_QX_GNFL(this.Request); //从数据库得到分类实体 var model = bllGnfl.GetModel(flbm); if (model != null) //如果分类存在就加载数据 { _flbm.Value = model.FLBM; _flmc.Value = model.FLMC; //如果数据库中分类编码为空,就默认为:顶级分类。 if (!string.IsNullOrWhiteSpace(model.FFLBM)) { _fflbm.Value = model.FFLBM; _fflmc.Value = bllGnfl.GetModel(model.FFLBM).FLMC; } else { _fflbm.Value = ""; _fflmc.Value = "顶级分类"; } } else //不存在就默认:顶级分类 { _fflbm.Value = ""; _fflmc.Value = "顶级分类"; } }
/// <summary> /// 根据父分类ID,获取该父分类下的分类集合 /// </summary> /// <param name="parentid">父分类ID</param> /// <returns>该父分类ID下的分类集合</returns> private static DataTable GetFunTypeDataTable(string parentid) { var gnfl = new XT_QX_GNFL(request); var sbwhere = new StringBuilder(); var valuses = new object[1]; sbwhere.Append(" and SFSC = 'N' "); if (!string.IsNullOrWhiteSpace(parentid)) { sbwhere.Append(" and FFLBM =:FFLBM "); valuses[0] = parentid; } else { sbwhere.Append(" and FFLBM IS NULL "); } var ds = gnfl.GetList(sbwhere.ToString(), valuses); int count = (ds != null && ds.Tables.Count > 0) ? ds.Tables[0].Rows.Count : 0; return((ds != null && ds.Tables.Count > 0) ? ds.Tables[0] : new DataTable()); }