C#.NET TreeView.cs

本文介绍了一种使用C#语言实现的TreeView绑定方法,该方法通过递归遍历数据表中的节点信息来构建TreeView控件的层级结构。具体步骤包括创建根节点、添加子节点并递归调用自身以构造完整的树形结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

        public void BindTreeView(DataTable dt,ref TreeView tvname)
        {
            //datatable.DefaultView.Sort("NodeSeq,ParentNode");
            tvname.Nodes.Clear();
            //创建根节点
            DataRow[] parentrow = dt.Select("ParentNode='0'", "NodeSeq");
            TreeNode rootnode = new TreeNode();
            rootnode.Text = parentrow[0][3].ToString();
            rootnode.Name = parentrow[0][4].ToString();//主键的值
            rootnode.Expand();
            //rootnode.Selected = true;
            tvname.Nodes.Add(rootnode);
            CreateChildNode(rootnode, dt);
        }


        public void CreateChildNode(TreeNode parentNode, DataTable datatable)
        {

            DataRow[] rowlist = datatable.Select("ParentNode='" + parentNode.Name.ToString() + "'", "NodeSeq,ParentNode");
            foreach (DataRow row in rowlist)
            {
                //创建新节点
                TreeNode node = new TreeNode();
                node.Name = row["NodeName"].ToString();
                node.Text = row["TreeNode"].ToString();
                node.Expand();
                //parentNode.ChildNodes.Add(node);
                parentNode.Nodes.Add(node);
                CreateChildNode(node, datatable);         //递归调用,寻找自身的子节点  
            }
        }

 

   客户端代码:           

          strSQL = "Select * from PAL_MES_TreeNode where AppName='PAL_MES' and FormName='frmSTReadyMaterial' and TreeName='tvLine'";
            DataTable datatable = CESQL.GetDataTable(strSQL);
            CCMRule.BindTreeView(datatable, ref tvLine);
            tvLine.ExpandAll();
            tvLine.SelectedNode = tvLine.Nodes[0].Nodes[0];
            tvLine.Focus();

 

         

转载于:https://www.cnblogs.com/cuishao1985/archive/2008/11/28/1343349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值