treeview 无限分级(c# dataview)

表结构

id         name        pid

0            root          -1

1             tom          0

....

 

  public void ShowTree()//利用dataview ,更高效,更省资源,读一次数据库即可
        {
            Maticsoft.BLL.TREE tree = new Maticsoft.BLL.TREE();
            DataSet ds = new DataSet();
            DataView dv = new DataView();  //
            TreeNode node = new TreeNode();
            string where;
            //DataView dv = new DataView(ds.Tables[0]);
            ds = tree.GetList("1=1");//读取要分级的表的所有数据


            dv = ds.Tables[0].DefaultView;
            //添加根节点
            where = "pid=-1";
            dv.RowFilter = where;
            node.Name = dv[0][0].ToString();//id
            node.Text = dv[0][1].ToString();//name
            treeView1.Nodes.Add(node);
            where = "pid=" + node.Name;
            while(0!=dv.Count)
            {
              
                dv.RowFilter = where;//筛选下一级节点
                where = "   ";//3个空格,免得length-3 不够减
                foreach (DataRowView row in dv)
                {
                    node = treeView1.Nodes.Find(row["pid"].ToString(),true)[0];//找父节点
                    where = where + " pid=" + row["id"].ToString()+" or ";//查找下一级节点的条件
                    node.Nodes.Add(row[0].ToString(), row[1].ToString());//添加子节点
                }
                where = where.Substring(0, where.Length - 3);//去掉最后一个or
            }
          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值