/// <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</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();
        }
    }

调用:

最新文章

  1. 从源代码剖析Mahout推荐引擎
  2. Linux查看BIOS信息
  3. 自绘CListCtrl类,重载虚函数DrawItem
  4. [改善Java代码]不推荐覆写start方法
  5. textarea中限制输入字符长度
  6. JLink软件升级到4.92之后,Jlink不能用了
  7. [转]FFMpeg框架代码阅读
  8. C# winform 播放资源中的音频文件
  9. Python基础——2函数
  10. Go语言协程
  11. iis网站部署常见错误
  12. 使用three.js写全景图,使用sprite类canvas,结合射线,点击跳转指定全景图【转】
  13. openwrt中在软件包中定义PKG_INSTALL将会发生什么?
  14. 1、Keepalived及VRRP原理介绍
  15. 【转】js 对象按照键值(不分区大小写)排序,生成签名方法
  16. 零基础学C#算法(零基础学算法——C#版)
  17. java-集合小结
  18. 固定UILabel宽度分行显示
  19. 从Iris数据集开始---机器学习入门
  20. SQL学习笔记三(补充-1)之MySQL存储引擎

热门文章

  1. ThinkPad T430i,如何将WIN8换成WIN7???
  2. Android 实现界面(Activity)的跳转
  3. Miniprofiler在swagger、vue、angular中的使用
  4. 使用n g r o k将本地主机URL暴露给互联网
  5. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
  6. Cesium简介 [转]
  7. WPF点滴(1) Main 函数
  8. 使用math.js进行javascript精确计算
  9. 【学习笔记】dsu on tree
  10. jzoj5878