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

  • 相关阅读:
    pyhton 163 email ssl attach file
    Database creation error: relation "ir_model" does not exist LINE 1: SELECT * FROM ir_model WHERE state='manual' ^
    爬虫心得
    WSL windows子系统ubuntu18.04建设自己的乌云
    WSL windwos 子系统 ubuntu18.04安装mysql
    python 163 email 554
    自定义的应用层协议(转)
    嵌入式杂谈之文件系统(转)
    linux VFS
    C++之保护和私有构造函数与析构函数
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2087908.html
Copyright © 2011-2022 走看看