zoukankan      html  css  js  c++  java
  • C#使用递归算法给TreeView控件绑定数据

    /// <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)去查

  • 相关阅读:
    17. 文件查找
    18. 后台进程
    16. Linux 文件目录权限
    15. SSH 远程
    14. 用户管理
    Emacs Python 自动补全--Elpy
    C++ 程序在运行时不显示dos界面
    OpenCV设置摄像头分辨率及全屏显示
    #error : Xiron Platform Abstraction Layer
    Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2087908.html
Copyright © 2011-2022 走看看