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

  • 相关阅读:
    vSan中见证组件witness详解
    zabbix监控企业esxi虚拟机
    新特性之MAPI over HTTP 配置 MAPI over HTTP
    Exchange Server 产品路线图 及 补丁下载
    人生的第一桶金
    这不是我想要的生活,努力才是王道!
    孤独的灵魂该去何处安家
    如何查看myeclipse是否激活
    Visual Studio 2013如何破解(密钥激活)
    unity破解步骤
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2087908.html
Copyright © 2011-2022 走看看