通过DataTable 返回Json格式,用于绑定Easyui tree
/// <summary>
/// 根据DataTable生成Json树结构
/// </summary>
/// <param name="tabel">数据源</param>
/// <param name="idCol">ID列</param>
/// <param name="txtCol">Text列</param>
/// <param name="rela">关系字段(字典表中的树结构字段)</param>
/// <param name="pId">父ID(0)</param>
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
private void GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId)
{
result.Append(sb.ToString());
sb.Clear();
if (tabel.Rows.Count > 0)
{
sb.Append("[");
string filer = string.Format("{0}='{1}'", rela, pId);
DataRow[] rows = tabel.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"state\":\"open\"");
if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)
{
sb.Append(",\"children\":");
GetTreeJsonByTable(tabel, idCol, txtCol, rela, row[idCol]);
result.Append(sb.ToString());
sb.Clear();
}
result.Append(sb.ToString());
sb.Clear();
sb.Append("},");
}
sb = sb.Remove(sb.Length - 1, 1);
}
sb.Append("]");
result.Append(sb.ToString());
sb.Clear();
}
}
GetTreeJsonByTable(datatable, "id", "title", "pid", "0"); string content = result.ToString();
通过DataTable 返回Json格式,用于绑定Easyui tree/// <summary> /// 根据DataTable生成Json树结构 調用GetTreeJsonByTable(datatable, "MENUID", "MENUNAME", "PARENTID", "0"); /// </summary> /// <param name="tabel">数据源</param> /// <param name="idCol">ID列</param> /// <param name="txtCol">Text列</param> /// <param name="rela">关系字段</param> /// <param name="pId">父ID</param> ///<returns>easyui tree json格式</returns> StringBuilder treeResult = new StringBuilder(); StringBuilder treesb = new StringBuilder(); public string GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId) { string treeJson = string.Empty; treeResult.Append(treesb.ToString()); treesb.Clear(); if (tabel.Rows.Count > 0) { treesb.Append("["); string filer = string.Empty; if (pId.ToString() == "") { filer = string.Format("{0} is null", rela); } else { filer = string.Format("{0}='{1}'", rela, pId); } DataRow[] rows = tabel.Select(filer); if (rows.Length > 0) { foreach (DataRow row in rows) { treesb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"state\":\"open\""); if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0) { treesb.Append(",\"children\":"); GetTreeJsonByTable(tabel, idCol, txtCol, rela, row[idCol]); treeResult.Append(treesb.ToString()); treesb.Clear(); } treeResult.Append(treesb.ToString()); treesb.Clear(); treesb.Append("},"); } treesb = treesb.Remove(treesb.Length - 1, 1); } treesb.Append("]"); treeResult.Append(treesb.ToString()); treeJson = treeResult.ToString(); treesb.Clear(); } return treeJson; }
调用方法:
MenuTreeHelper treeHelper = new MenuTreeHelper();
return treeHelper.GetTreeJsonByTable(datatable, "ID", "TEXT", "PARENTNO", "0");
把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid
public static string DataTable2Json(System.Data.DataTable dt)
{
System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
jsonBuilder.Append("{");
jsonBuilder.AppendFormat("\"total\":{0}, ", dt.Rows.Count);
jsonBuilder.Append("\"rows\":[ ");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
} 转载自:http://www.cnblogs.com/liang--liang/archive/2013/02/05.html
DataTable转Json用于EasyUI
本文介绍了一种将DataTable转换为Json格式的方法,以便于EasyUI框架的数据绑定。包括生成树形结构Json及DataGrid所需的Json格式。适用于前端开发中动态加载数据的需求。
165

被折叠的 条评论
为什么被折叠?



