树节点创建

foreach (DataRow dr in rows)
            {
                TreeNode rootNode = new TreeNode();
                rootNode.Text = Convert.ToString(dr["FNAME_L2"]);
                rootNode.Tag = dr;
                treeView1.Nodes.Add(rootNode);
                CreateChild(rootNode, ds.Tables[0]);
            }

/// <summary>
        /// 创建子节点
        /// </summary>
        /// <param name="trparent"></param>
        /// <param name="id"></param>
        public void CreateChild(TreeNode trparent, DataTable dt)
        {
            DataRow row = (DataRow)trparent.Tag;

            string filterStr = "FPARENTID ='" +row[0].ToString() + "'";
            DataRow[] rows = dt.Select(filterStr);
            if (rows.Length == 0)
                return;
            else
            {
                foreach (DataRow dr in rows)
                {
                    TreeNode treeNode = new TreeNode();
                    treeNode.Text = Convert.ToString(dr["FNAME_L2"]);
                    treeNode.Tag = dr;
                    trparent.Nodes.Add(treeNode);
                    CreateChild(treeNode, dt);
                }
            }
        }

 

/// <summary>
        /// 遍历树
        /// </summary>
        /// <param name="tnParent"></param>
        /// <param name="strValue"></param>
        /// <returns></returns>
        private TreeNode FindNode(TreeNode tnParent, string strValue)
        {
            if (tnParent == null) return null;
            DataRow dr = (DataRow)tnParent.Tag;
            if (tnParent.Text == strValue && dr["FLONGNUMBER"].ToString() == dataGridView1.CurrentRow.Cells["departmentid"].Value.ToString()) return tnParent;//还要判断别的,因为部门名有很多一样的,他只能查出第一个看到的
            TreeNode tnRet = null;
            foreach (TreeNode tn in tnParent.Nodes)
            {
                tnRet = FindNode(tn, strValue);
                if (tnRet != null) break;
            }
            return tnRet;
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值