TreeView遍历ACCESS表,求代碼,感謝
表結如下:
NodeId ParentId NodeName
10     0      A
11     0      B
12     0      C
13     10     AA
14     10     AAA
15     11     BB
16     15     BBB
17     12     CC
18     17     CCC

解决方案 »

  1.   

    http://topic.csdn.net/u/20090729/20/c108a8a9-7faf-4066-9135-1b52a7b50345.html
      

  2.   

    /// <summary>
            /// 递归添加TreeView节点
            /// </summary>
            /// <param name="ParentID">父节点</param>
            /// <param name="pNode">当前节点</param>
            /// <param name="dtTree">数据源</param>
            public void AddTree(string ParentId , TreeNode pNode, DataTable dtTree)
            {
                DataView dvTree = new DataView(dtTree);            //父节点
                string Fstr = "ParentId = '" + ParentID + "'";            dvTree.RowFilter = Fstr;
                foreach (DataRowView Row in dvTree)
                {
                    TreeNode Node = new TreeNode();
                    if (pNode == null) //处理主节点   
                    {
                        Node.Name = Row[NodeId].ToString();
                        Node.Text = Row[NodeName].ToString();
                        this.trv_Group.Nodes.Add(Node);//加入
                        AddTree(Row[NodeId].ToString(), Node, dtTree);
                    }
                    else //处理子节点   
                    {
                        Node.Name = Row[NodeId].ToString();
                        Node.Text = Row[NodeName].ToString();
                        pNode.Nodes.Add(Node);//加入
                        AddTree(Row[NodeId].ToString(), Node, dtTree);
                    }
                    Node.ExpandAll();
                }        }
      

  3.   

    错误 1 'System.Web.UI.WebControls.TreeNode' does not contain a definition for 'Nodes' D:\WEBOF\Default3.aspx.cs 65 15 D:\WEBOF\問題出來了。找不到TreeNode类,我下載了IEWebControls.exe,產生了BIN\Microsoft.Web.UI.WebControls.dll引用using Microsoft.Web.UI.WebControls;也出錯 protected void Button1_Click(object sender, EventArgs e)
      {
      string connstring = ConfigurationManager.ConnectionStrings["DBLIKE"].ConnectionString;
      OleDbConnection likecon = new OleDbConnection(connstring);
      likecon.Open();
      string sqltxt = "select nodeid,parentid,nodename from menu";
      OleDbDataAdapter sda = new OleDbDataAdapter(sqltxt, likecon);
      DataSet DataSet_Tree = new DataSet();
      sda.Fill(DataSet_Tree);
      this.ViewState["DataSet_Tree"] = DataSet_Tree;
      //调用递归函数,完成树形结构的生成
      AddTree(0, (TreeNode)null);
      }  public void AddTree(int ParentID, TreeNode pNode)
      {
      DataSet DataSet_Tree = (DataSet)this.ViewState["DataSet_Tree"];
      DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
      //过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
      DataView_Tree.RowFilter = "[parentid] = " + ParentID;  //循环递归
      foreach (DataRowView Row in DataView_Tree)  
      {
      //声明节点
      TreeNode Node=new TreeNode() ;
      //绑定超级链接
      //Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
      //开始递归
      if(pNode == null)  
      {
      //添加根节点
      Node.Text = Row["nodename"].ToString();
      TreeView.Nodes.Add(Node);
      Node.Expanded=true; //节点状态展开
      AddTree(Int32.Parse(Row["nodeid"].ToString()), Node); //再次递归
      }  
      else  
      {   
      //添加当前节点的子节点
      Node.Text = Row["nodename"].ToString();
      pNode.Nodes.Add(Node);
      Node.Expanded = true; //节点状态展开
      AddTree(Int32.Parse(Row["nodeid"].ToString()), Node); //再次递归
      }
      }
      //关闭连接
      

  4.   

    TreeNode 是树节点啊, 这个命名空间是不用导入的
      

  5.   

    感谢大家,搞定
     protected void Button2_Click(object sender, EventArgs e)
        {
            string connstring = ConfigurationManager.ConnectionStrings["DBLIKE"].ConnectionString;
            //string connstring = "Data Source=MIS1000;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=";
            SqlConnection lcon = new SqlConnection(connstring);
            lcon.Open();
            string sqltxt = "select * from sysMenuTree";
            SqlDataAdapter sda = new SqlDataAdapter(sqltxt, lcon);
            DataSet DataSet_Tree = new DataSet();
            sda.Fill(DataSet_Tree);
            this.ViewState["DataSet_Tree"] = DataSet_Tree;
            //调用递归函数,完成树形结构的生成
            AddTree(0, (TreeNode)null);    }
        public void AddTree(int ParentID, TreeNode pNode)
        {
            DataSet DataSet_Tree = (DataSet)this.ViewState["DataSet_Tree"];
            DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
            //过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
            DataView_Tree.RowFilter = "[ParentId] = " + ParentID;
            //循环递归
            foreach (DataRowView Row in DataView_Tree)
            {
                //声明节点
                TreeNode Node = new TreeNode();
               
                //绑定超级链接
                //Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
                //开始递归
                if (pNode == null)
                {
                    //添加根节点
                    Node.Text = Row["sValue"].ToString();
                    treeMenu.Nodes.Add(Node);
                    Node.Expanded = true; //节点状态展开
                    AddTree(Int32.Parse(Row["NoteId"].ToString()), Node); //再次递归
                }
                else
                {
                    //添加当前节点的子节点
                    Node.Text = Row["sValue"].ToString();
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true; //节点状态展开
                    AddTree(Int32.Parse(Row["NoteId"].ToString()), Node); //再次递归
                }
            }
            //关闭连接