• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#使用递归算法给TreeView控件绑定数据

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

/// <summary>
        /// 查找根节点(parent_ID为0的节点)的子节点
        /// </summary>
        /// <param name="parent_ID">参数,接收根节点ID即0</param>
        public void bindtree(string parent_ID)
        {
            this.tvgood.Nodes.Clear();
            DataTable dt = frmgb.Getdata(parent_ID);
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    TreeNode node = new TreeNode();
                    node.Text = dt.Rows[i]["gt_Name"].ToString();
                    node.Tag = dt.Rows[i]["gt_ID"].ToString();
                    DataTable dt1 = frmgb.Getdata(node.Tag.ToString());
                    this.tvgood.Nodes.Add(node);//把指定节点添加到控件中
                    frmgb.bindnode(node);//递归遍历制定节点下的子节点
                }
            }
        }

        /// <summary>
        /// 递归遍历指定节点下的子节点
        /// </summary>
        /// <param name="nd">参数,接收节点对象</param>
        public void bindnode(TreeNode nd)
        {
            try
            {
                DataTable dt = Getdata(nd.Tag.ToString());
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    TreeNode node = new TreeNode();
                    node.Text = dt.Rows[i]["gt_Name"].ToString();
                    node.Tag = dt.Rows[i]["gt_ID"].ToString();
                    DataTable dt1 = Getdata(node.Tag.ToString());
                    nd.Nodes.Add(node);//把指定节点添加到控件中
                    bindnode(node);
                }
            }
            catch (Exception error)
            {
                throw error;
            }
        }

 /// <summary>
        /// 从数据库中查找指定节点(ID)的子节点
        /// </summary>
        /// <param name="ID">参数</param>
        /// <returns>返回DataSet</returns>
        public DataTable Getdata(string ID)
        {
            try
            {
                DataTable dt = Query.ProcessSql("select * from POS_GoodsType where  gt_FatherNode=" + ID, Constants.DBNAME);
                return dt; //返回含有ID的数据
            }
            catch (Exception error)
            {
                throw error;
            }
        }

点击节点查询类型下的所属商品时目标明确将父节点和所有子节点循环拼接起来字符串在商品表中根据GoodType in (2,3)去查


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言学习:开平方发布时间:2022-07-14
下一篇:
C#GZipStream发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap