我是在WEB中做的,treeview1出错,过不去,不知是什么原因,一早晨不出啊!
代码:
protected void Page_Load(object sender, EventArgs e)
    {
    }    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
    }
    DataSet ds = new DataSet();
    private void Form1_Load(object sender, System.EventArgs e)
   {   
            
             SqlConnection con = DBcon.createConnection(); 
           try 
{
                con.Open();
                SqlCommand sqlCmd = new SqlCommand("select * from tbtree",con);
                SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
                adp.Fill(ds);
         
            }
               catch (Exception ex)
{
throw (ex);   
}
finally 
{
                con.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} // 递归添加树的节点
public void AddTree(int ParentID,TreeNode pNode) 
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter =  "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree) 
{
if(pNode == null) 
{    //'̀添加根节点
                    TreeNode Node = TreeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node);    //再次递归

else 
{   //添加当前节点的子节点
TreeNode Node =  pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
} }帮助看看啊,,

解决方案 »

  1.   

    AddTree(0, (TreeNode)null); 此处代码 改为AddTree();
    然后以下代码全部改为:
      DataView dvTree;
            public void AddTree()
            {
                dvTree = new DataView(ds.Tables[0]);            
                dvTree.RowFilter = "[PARENTID] = 0";
                foreach (DataRowView Row in dvTree)
                {              
                    TreeNode Node=new TreeNode();
                    Node.Text = Row["ConText"].ToString();
                    Node.Tag = int.Parse(Row["ID"].ToString());
                    TreeView1.Nodes.Add(Node);
                    Items(int.Parse(Node.Tag.ToString()), ref Node);    
                  
                }
            }
            private void Items(int id, ref TreeNode tn)
            {
                dvTree.RowFilter = "[PARENTID] = " + id;
                foreach (DataRowView Row in dvTree)
                {
                    TreeNode n = new TreeNode();
                    n.Text = Row["ConText"].ToString();
                    n.Tag = int.Parse(Row["ID"].ToString());
                    tn.Nodes.Add(n);
                    Items(int.Parse(n.Tag.ToString()), ref n);
                }
            }
      

  2.   

    不好意思,System.Web.UI.WebControls.TreeNode   并不包含“Tag”的定义
    应该怎么做啊?
      

  3.   

    那你就把那个ID值存到TreeNode的其他属性里呗。
    比如说Value值 比如说Target
      

  4.   

    “TreeNode”是“System.Web.UI.WebControls.TreeNode”和“Microsoft.Web.UI.WebControls.TreeNode”private void Items(int id, ref TreeNode tn)这一点调不出来啊~~请再看看,谢谢!!
      

  5.   

    AddTree(0, (TreeNode)null); 此处代码 改为AddTree();
    然后以下代码全部改为:
      DataView dvTree;
            public void AddTree()
            {
                dvTree = new DataView(ds.Tables[0]);            
                dvTree.RowFilter = "[PARENTID] = 0";
                foreach (DataRowView Row in dvTree)
                {              
                    TreeNode Node=new TreeNode();
                    Node.Text = Row["ConText"].ToString();              
                    TreeView1.Nodes.Add(Node);
                    Items(nt.Parse(Row["ID"].ToString(),ref Node);    
                  
                }
            }
            private void Items(int id, ref TreeNode tn)
            {
                dvTree.RowFilter = "[PARENTID] = " + id;
                foreach (DataRowView Row in dvTree)
                {
                    TreeNode n = new TreeNode();
                    n.Text = Row["ConText"].ToString();                
                    tn.Nodes.Add(n);
                    Items(int.Parse(Row["ID"].ToString()),ref n);
                }
            }
      

  6.   

    Items(nt.Parse(Row["ID"].ToString(),ref Node);   
    上面这句少了字母 i
    你把问题再说清楚点。
    会出什么异常啊?
      

  7.   

    “TreeNode”是“System.Web.UI.WebControls.TreeNode”和“Microsoft.Web.UI.WebControls.TreeNode”之间的不明确的引用是在这句中 private void Items(int id, ref TreeNode tn)
    ,请再看看..感谢
      

  8.   

    哦 
    这意思啊。
    那你就把全文中出现 这种问题的地方的中的 TreeNode 都换成System.Web.UI.WebControls.TreeNode
    再试
      

  9.   

    不过你用的那个控件是 System.Web.UI.WebControls.TreeNode 还是Microsoft.Web.UI.WebControls.TreeNode啊?
    你用的是什么  在出错的地方就改成什么啊。。
      

  10.   

    警告 1 “_Default.Items(int, ref System.Web.UI.WebControls.TreeNode)”隐藏了继承的成员“System.Web.UI.Page.Items”。如果是有意隐藏,请使用关键字 new。编译器错误信息: CS0117: “System.Web.UI.WebControls.TreeNode”并不包含“Tag”的定义
    真是奇怪,错误又更多了,看看..
      

  11.   


    我的错啊。。你把方法 Items 随便换个名字啊
      

  12.   

    AddTree(0, (TreeNode)null); 此处代码 改为AddTree();
    然后以下代码全部改为:
      DataView dvTree;
            public void AddTree()
            {
                dvTree = new DataView(ds.Tables[0]);            
                dvTree.RowFilter = "[PARENTID] = 0";
                foreach (DataRowView Row in dvTree)
                {              
                    System.Web.UI.WebControls.TreeNode Node=new System.Web.UI.WebControls.TreeNode();
                    Node.Text = Row["ConText"].ToString();              
                    TreeView1.Nodes.Add(Node);
                    ItemsAA(int.Parse(Row["ID"].ToString(),ref Node);    
                  
                }
            }
            private void ItemsAA(int id, ref System.Web.UI.WebControls.TreeNode tn)
            {
                dvTree.RowFilter = "[PARENTID] = " + id;
                foreach (DataRowView Row in dvTree)
                {
                    System.Web.UI.WebControls.TreeNode n = new System.Web.UI.WebControls.TreeNode ();
                    n.Text = Row["ConText"].ToString();                
                    tn.Nodes.Add(n);
                    ItemsAA(int.Parse(Row["ID"].ToString()),ref n);
                }
            }
      

  13.   

    “System.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义
    都好了,只有这个问题了...麻烦了,
      

  14.   

    好了!!我是VS2005是childnode,谢谢