无限数据递归

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
              AddTree(0, (TreeNode)null);
            }
        }
        protected void AddTree(int parentId, TreeNode pNode)
        {

            PurviewPage[] purviewPageList = BLL.PurviewPageBLL.GetDataByParentId(parentId);
            for(int i=0;i<purviewPageList.Length;i++)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {
                    //添加根节点
                    Node.Text = purviewPageList[i].Name;
                    Node.Value = purviewPageList[i].ID.ToString() ;
                    Node.NavigateUrl = Request.Url.AbsoluteUri.Replace(BLL.PurviewPageBLL.getUrl(Request.RawUrl), "") + purviewPageList[i].Url;
                    TreeView1.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(purviewPageList[i].ID, Node); //再次递归
                }
                else
                {
                    //?添加当前节点的子节点
                    Node.Text = purviewPageList[i].Name;
                    Node.Value = purviewPageList[i].ID.ToString();
                    Node.NavigateUrl = Request.Url.AbsoluteUri.Replace(BLL.PurviewPageBLL.getUrl(Request.RawUrl), "") + purviewPageList[i].Url;
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(purviewPageList[i].ID, Node); //再次递归
                }
            }
        }

posted @ 2007-11-10 12:25  天纯蓝  阅读(297)  评论(0编辑  收藏  举报