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

  • 相关阅读:
    设计模式之代理模式
    Java面试总结系列之Collections.sort()
    Scala基础
    Win7 电脑设置临时网络,无法加入网络;internet禁止网络共享
    Java面试题系列 提高Java I/O 性能
    电子商务中:B2C、B2B、C2B、C2C、O2O、P2P
    JVM内存格局总结
    Dubbo相关博文整理
    Java面试题汇总(一)
    Java多线程总结
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2087908.html
Copyright © 2011-2022 走看看