vs2003项目里含有Microsoft Internet Explorer WebControls的treeview控件,升级到2005已经不能使用了,2005的msdn里也说Microsoft Internet Explorer WebControls is not currently supported。请大家帮忙给一段用2005自带treeview控件利用递归调用生成树的代码。感激!!!

解决方案 »

  1.   

    两者没什么大的区别啊,就是TreeNode的名字空间变了,把你2003下的代码改改就行.递归使一样的写!
      

  2.   

    #region//填充数据
        private void CreatDate()
        {
            SqlConnection CN = new SqlConnection(SQL.SQLConn.sqlconn());        try
            {
                CN.Open();
                SqlDataAdapter adp = new SqlDataAdapter("select * from ", CN);
                DataSet ds = new DataSet();
                adp.Fill(ds);
                this.ViewState["ds"] = ds;
            }
            catch (Exception ex)
            {
                Session["Error"] = ex.ToString();
                //Response.Redirect("error.aspx");       //?跳转程序的公共错误处理页面
            }
            finally
            {
                CN.Close();
            }
            //调用递归函数,完成树形结构的生成
            AddTree(0, (TreeNode)null);
        }
        #endregion
        #region 递归构造树    private void AddTree(int ParentCategotyId, TreeNode pNode) //ParentID
        {
            DataSet ds = (DataSet)this.ViewState["ds"];
            DataView dvTree = new DataView(ds.Tables[0]);
            //过滤ParentID,得到当前的所有子节点
            dvTree.RowFilter = "[ParentId] = " + ParentCategotyId;        foreach (DataRowView Row in dvTree)
            {            TreeNode Node = new TreeNode();
                if (pNode == null)
                {    //添加根节点
                    Node.Text = Row["ConText"].ToString();//ConText
                    TreeView1.Nodes.Add(Node);
                    Node.Expanded = false;                Node.Target = "SubjectRight";
                    //Node.NavigateUrl = "SubjectRight.aspx?ID=" + Row["ID"].ToString() + " &ConText=" + Row["ConText"].ToString() + ""; 
                    Node.NavigateUrl = "SubjectRight.aspx?ID=" + Row["ID"].ToString() + "&ConText=" + Row["ConText"].ToString().Trim() + "&ParentID=" + Row["ParentID"].ToString() + "&ParentText=" + Row["ParentText"].ToString().Trim() + "&isunOut=" + Row["isunOut"].ToString() + "&NewURL=" + Row["NewURL"].ToString() + "&HttpURL=" + Row["HttpURL"].ToString() + "";                // Node.ImageUrl ="../Img/TreeImages/treeopen.gif";
                    // Node.ExpandedImageUrl="../Img/TreeImages/treeclosed.gif";
                    AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归   ID
                }
                else
                {   //?添加当前节点的子节点
                    Node.Text = Row["ConText"].ToString();
                                    
                    pNode.Nodes.Add(Node);
                    Node.Expanded = false;
                    Node.Text = Row["ConText"].ToString(); //ConText                Node.Target = "SubjectRight";
                    Node.NavigateUrl = "SubjectRight.aspx?ID=" + Row["ID"].ToString() + "&ConText=" + Row["ConText"].ToString().Trim() + "&ParentID=" + Row["ParentID"].ToString() + "&ParentText=" + Row["ParentText"].ToString().Trim() + "&isunOut=" + Row["isunOut"].ToString() + "&NewURL=" + Row["NewURL"].ToString() + "&HttpURL=" + Row["HttpURL"].ToString() + "";                // Node.ImageUrl ="../Img/TreeImages/treeopen.gif";
                    // Node.ExpandedImageUrl="../Img/TreeImages/treeclosed.gif";
                    //
                    AddTree(Int32.Parse(Row["ID"].ToString()), Node);
                }
            }    }    #endregion
      

  3.   

    ID            节点id
    ParentId      父节点id
    ConText       节点名称
    ParentText    父节点名称
    NewURL        链接位置
      

  4.   

    /// <summary>
      /// 递归构建节点树
      /// </summary> 
      private void CreateNode(string id,TreeNode td)
      {
       Microsoft.Web.UI.WebControls.TreeNode tempNode=null; 
       string selectString=null; 
       string strNodeText=null; 
       string strChildId=null;   selectString="Menu_Parent=" + id + "";     DataRow[] dataRows = treeDataSet.Tables["menuTable"].Select(selectString); //搜索当前节点的所有子节点   foreach(DataRow dr in dataRows)
       {
        tempNode = new Microsoft.Web.UI.WebControls.TreeNode(); 
        strNodeText = dr["Menu_Name"].ToString(); 
        strChildId = dr["id"].ToString(); 
        tempNode.Text = strNodeText;
        td.Nodes.Add(tempNode);   //添加子节点
        CreateNode(strChildId,tempNode);
       }
      }
      

  5.   

    //****树加载
        public void CNCSMSColumnInfoLoad(ref TreeView TreView)
        { 
            //****清空当前节点
            TreView.Nodes.Clear();        //****构建一个父节点
            TreeNode TRPNode = null;
            //****加载根节点        //****创建一个数据
            DataSet DSet = new DataSet();        //****说明:查找根节点条为 AND LEN(PNODECODE)=2 ORDER BY PNODECODE DESC;
            //****获取数据
            //DSet = (new WebServiceParser());
            foreach (DataRow dRow in DSet.Tables[0].Rows)
            {
                //****加载根节点
                TRPNode = new TreeNode();            TRPNode.Text = dRow["PNodeName"].ToString();
                TRPNode.Value = dRow["PNodeCode"].ToString();            string PNODECODE=dRow["PNodeCode"].ToString();
                //****加载子节点
                ColumnInfoLoadChile(TRPNode, ref PNODECODE);        }
        }    private void ColumnInfoLoadChile(TreeNode TRPNode, ref string PNodeCode)
        { 
            //****获取父节点编号
            string PNode = PNodeCode;        //****创建一个数据集
            DataSet DSet = new DataSet();        //****调用外部接口
            //DSet = (new WebBrowsableAttribute());        /*
             * 获取子节点条件
             * int intlen,intclen;
             *if(mitem.pnodecode==null)
             * {
             *     intclen=0;
             * }
             * else
             * {
             *     intclen=mitem.pnodecode.lenght;
             * }
             * intclen+=2;
             * "and (substring(pnodecode,0,len(pnodecode))='" + intclen + "' and (len(pnodecode)='" + intlen + "') order by pnodecode asc";
             */
            TreeNode chilepnode = null;        foreach (DataRow dRow in DSet.Tables[0].Rows)
            {
                chilepnode = new TreeNode();            chilepnode.Text = dRow["PNodeName"].ToString();
                chilepnode.Value = dRow["PNodeCode"].ToString();            string mPNodeCode=dRow["PNodeCode"].ToString();            ColumnInfoLoadChile(chilepnode, ref mPNodeCode);
            }    }