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

  • 相关阅读:
    ASP.NET MVC 4高级编程(第4版)
    Unity3d报告奇怪的错误CompareBaseObjectsInternal can only be called from the main thread.
    HDU 4862 Jump(更多的联合培训学校1)(最小费用最大流)
    0,22, 47, 120,(? ),290
    它们的定义Activity跳转动画
    ssh探头安全
    Netty:一种非易失堵塞client/server相框
    Swift类和结构
    php+mysql+nginx于linux部署对环境
    javascript 次序li
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2087908.html
Copyright © 2011-2022 走看看