http://www.csaspx.com/articlelist-952.htmlhtml
///
/// 根據DataTable生成Json樹結構
///
///數據源
///ID列
///Text列
///關係字段
///父ID
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();
}
} 函數
調用方法很簡單,運行這個void 類型的函數,而後取result 的值就好了, ui
GetTreeJsonByTable(datatable, "id", "title", "pid", "0");
string content = result.ToString(); orm
乾貨啊 。好東西啊 。htm