ASP.NET学习社区ASP.NET学习区有问有答 TreeView 問題 急急急急急急急急

1  /  1  页   1 跳转 查看:632

TreeView 問題 急急急急急急急急

TreeView 問題 急急急急急急急急

DataSet ds = new DataSet();
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection CN = new SqlConnection();
        try
        {
            //初始化连接字符串
            CN.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["strconn"];
            CN.Open();
            //添加命令,从数据库中得到数据
            SqlCommand sqlCmd = new SqlCommand();
            sqlCmd.Connection = CN;
            sqlCmd.CommandText = "select * from menu";
            sqlCmd.CommandType = CommandType.Text;
            SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
            adp.Fill(ds);
        }
        catch (Exception ex)
        {
            throw (ex);
        }
        finally
        {
            CN.Close();
        }
        //调用递归函数,完成树形结构的生成
        AddTree(0, (TreeNode)null);
    }
    // 递归添加树的节点
    public void AddTree(int sn, TreeNode pNode)
    {
        DataView dvTree = new DataView(ds.Tables[0]);
        //过滤sn,得到当前的所有子节点
        dvTree.RowFilter = "[sn] = " + sn;
        TreeNode Node = new TreeNode();
        foreach (DataRowView Row in dvTree)
        {
            if (pNode == null)
            {    //'̀添加根节点
                Node.Text = Row["menuname"].ToString();
                this.TreeView1.Nodes.Add(Node);          這一行在第二次調用時也報錯!!!
                Node.Expanded = true;  //节点状态展开 
                AddTree(Int32.Parse(Row["id"].ToString()), Node);
                //TreeNode Node = this.TreeView1.Nodes.Add(Row["menuname"].ToString());
                //AddTree(Int32.Parse(Row["id"].ToString()),Node);    //再次递归
            }
            else
            {
                Node.Text = Row["menuname"].ToString();
                pNode.Nodes.Add(Node);                                    這一行老報錯!!!!
                AddTree(Int32.Parse(Row["id"].ToString()), Node);
                //添加当前节点的子节点
                //TreeNode Node =  pNode.Nodes.Add(Row["menuname"].ToString());
                //AddTree(Int32.Parse(Row["id"].ToString()),Node); //再次递归
            }
        } 
    }
  大家幫幫我看看呀
最后编辑lzxyir 最后编辑于 2008-03-09 11:05:34
 

回复: TreeView 問題 急急急急急急急急

TreeNode Node = new TreeNode();

这一句好象应该放在  foreach 循环的里边吧。

否则你在循环中添加的总是同一个节点,当然要有错误了。
 

回复: TreeView 問題 急急急急急急急急



引用:
原帖由 tiny 于 2008-3-9 11:20:00 发表
  TreeNode Node = new TreeNode();

这一句好象应该放在  foreach 循环的里边吧。

否则你在循环中添加的总是同一个节点,当然要有错误了。


謝謝你!
上面那行問題已解決,
下面那行提示沒有Nodes 這個屬性,麻煩你幫我看一下,謝謝
最后编辑aspx1 最后编辑于 2008-03-09 17:14:17
 

回复:TreeView 問題 急急急急急急急急

呵呵,自己搞定了
 

回复: TreeView 問題 急急急急急急急急

搞顶了就好
 
1  /  1  页   1 跳转

版权所有 ASP.NET学习门户 2.0.1214   Sitemap  

返顶部