无限数据递归
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); //再次递归
}
}
}