62,046
社区成员
发帖
与我相关
我的任务
分享
public string getJsonAll(List<Mode> list)
{
StringBuilder json = new StringBuilder();
json = json.Replace("{}", "");
json.Append("[");
foreach (model dt in list)
{
json.Append("{\"id\":\"" + dt.LCode + "\"");
json.Append(",\"text\":\"" + dt.ExpensesName.Trim().Replace("\\", " ") + "\"");
//递归子分类方法
BindNode(dt.LCode, list, json);
json.Append("},");
}
if (l1.Count > 0)
{
json.Remove(json.Length - 1, 1);
}
json.Append("]");
return json.ToString();
}
///// <summary>
///// 采用递归算法创建无限级菜单项
///// </summary>
private void BindNode(string lcode, List<model> list, StringBuilder json)
{
var lis = //查询条件
if (lis.Count() > 0)
json.Append(",").Append("\"children\":[");
foreach (model dt in lis)
{
json.Append("{\"id\":\"" + dt.LCode + "\"");
json.Append(",\"text\":\"" + dt.ExpensesName.Trim().Replace("\\", " ") + "\"");
//递归子分类方法
BindNode(dt.LCode, list, json);
json.Append("},");
}
if (lis.Count() > 0)
{
json.Remove(json.Length - 1, 1);
}
if (lis.Count() > 0)
json.Append("]");
}
/// <summary>
/// 将表格转换为JQueryEasyUITreeJson
/// </summary>
/// <param name="dt"></param>
/// <param name="pField">表中的父节点字段</param>
/// <param name="pValue">表中顶层节点的值,没有 可以输入为"0"</param>
/// <param name="kField">关键字字段名称</param>
/// <param name="TextField">要显示的文本对应的字段</param>
/// <returns></returns>
public static string toEasyUITreeJson(this DataTable dt, string pField, string pValue, string kField, string TextField)
{
string result = TableToEasyUITreeJson(dt, pField, pValue, kField, TextField);
if (result.Length > 12)
{
return result.Substring(12);
}
else
{
return "";
}
}
///<summary>
/// 递归将DataTable转化为适合jquery easy ui 控件tree ,combotree 的 json
/// 生成的数据需要移除前面12个字符
///</summary>
///<param name="dt">要转化的表</param>
///<param name="pField">表中的父节点字段</param>
///<param name="pValue">表中顶层节点的值,没有 可以输入为0</param>
///<param name="kField">关键字字段名称</param>
///<param name="TextField">要显示的文本对应的字段</param>
///<returns></returns>
public static string TableToEasyUITreeJson(DataTable dt, string pField, string pValue, string kField, string TextField)
{
StringBuilder sb = new StringBuilder();
string filter = String.Format(" {0}='{1}' ", pField, pValue);//获取顶级目录.
DataRow[] drs = dt.Select(filter);
if (drs.Length < 1)
return "";
sb.Append(",\"children\":[");
foreach (DataRow dr in drs)
{
string pcv = dr[kField].ToString();
sb.Append("{");
sb.AppendFormat("\"id\":\"{0}\",", dr[kField].ToString().Replace("\"","\\\""));
sb.AppendFormat("\"text\":\"{0}\"", dr[TextField].ToString().Replace("\"", "\\\""));
sb.Append(TableToEasyUITreeJson(dt, pField, pcv, kField, TextField).TrimEnd(','));
sb.Append("},");
}
if (sb.ToString().EndsWith(","))
{
sb.Remove(sb.Length - 1, 1);
}
sb.Append("]");
return sb.ToString();
}
public class EasyUITreeNode
{
public int Id{get;set;}
public string text{get;set;}
public EasyUIAttribute attributes{get;set;}
public List<EasyUITreeNode> children{get;set;}
//else
}
public class EasyUIAttribute
{
//补全
}
DataTable是不行的,得通过递归实现