博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扩展方法树形
阅读量:5927 次
发布时间:2019-06-19

本文共 1233 字,大约阅读时间需要 4 分钟。

System.Data.DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(Int32));
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("parentid", typeof(Int32));
            dt.LoadDataRow(new object[] { 1, "a", 0 }, true);
            dt.LoadDataRow(new object[] { 2, "b", 1 }, true);
            dt.LoadDataRow(new object[] { 3, "c", 2 }, true);
            dt.LoadDataRow(new object[] { 4, "6", 1 }, true);
            dt.AsEnumerable().makeWebTreeView(
                this.treeView1.Nodes,
                p => Convert.ToInt32(p["id"]),
                p => Convert.ToInt32(p["parentid"]),
                p => new TreeNode() { Text = p["name"].ToString(), Tag = p },
                p => p.Nodes);

 

 

 static public class tools
    {
     public static void makeWebTreeView<TSource, TID, TNode>(
           this IEnumerable<TSource> list,
           IEnumerable tds,
          
           Func<TSource, TID> FunID,
           Func<TSource, TID> funParentID,
           Func<TSource, TNode> funConvert,  
            Func<TNode, IEnumerable> ChirldFun,
           decimal parentId = 0
           ) where TID : struct
        {
            var tlist = list.Where(c => Convert.ToDecimal(funParentID(c)) == parentId);
            foreach (var item in tlist)
            {
                TNode td = funConvert(item);
                dynamic d_tds = tds;
                d_tds.Add(td);
                list.makeWebTreeView(ChirldFun(td), FunID, funParentID, funConvert, ChirldFun,Convert.ToDecimal(FunID(item)));
            }
        }
    }
扩展方法

 

转载于:https://www.cnblogs.com/jazzka702/archive/2012/07/06/2580157.html

你可能感兴趣的文章
Fedora 12 环境下Gtk+开发环境配置
查看>>
vs2008中在解决方案资源管理器查看当前打开文件
查看>>
ubuntu14.04 鼠标闪烁问题
查看>>
jQuery Lightbox(balupton版)图片展示插件demo
查看>>
Elasticsearch集群的简单搭建
查看>>
SCRT-SSH传输文件
查看>>
Python非常cool的svg格式chart生成库pygal
查看>>
Telnet部署与启动 windows&&linux
查看>>
行列式的乘法定理
查看>>
有1000瓶水,3个瓶子可以再换1瓶,一共可以喝多少瓶?
查看>>
Search in Rotated Sorted Array ||
查看>>
NUC_HomeWork1 -- POJ2067(最短路)
查看>>
卸载mysql
查看>>
二叉树的遍历
查看>>
The Distinguish of the share or static lib in MFC
查看>>
如何导出数据库的数据词典
查看>>
linux下内存释放问题
查看>>
让Java和JavaScript进行交互
查看>>
android 上传文件
查看>>
linux逻辑卷管理
查看>>