怎么用递归算法把TreeView里面的数据进行遍利我是初学者,高手可以给段代码让我看看学习一下?谢谢

解决方案 »

  1.   

    if(!isPostBack)
    {
    string strSQL="Select * from tablename order by sh asc";
    MyDataSet=ExecuteDataSet(strSQL);
    ShowTree(TreeView1.Nodes, "-1");
    }
    //菜单循环加载
    private void ShowTree(Microsoft.Web.UI.WebControls.TreeNodeCollection Nds,string parentId)
    {
    DataView dv= new DataView();
    Microsoft.Web.UI.WebControls.TreeNode tmpNd;
    string intId;
    dv.Table=MyDataSet.Tables[0];
    dv.Sort=" Sh ";
    dv.RowFilter = "ParentId='"+ parentId +"'";
    string ShowMenu="Y";
    foreach (DataRowView drv in dv) 
    {
    tmpNd = new Microsoft.Web.UI.WebControls.TreeNode();
    intId = Convert.ToString(drv["NodeID"]);
    tmpNd.ID = intId;
    tmpNd.Text =  "<samp title='"+Convert.ToString(drv["NodeName"])+"'>"+Convert.ToString(drv["NodeName"])+"</samp>";
    tmpNd.ImageUrl="../public/images/closedfolder.gif";
    tmpNd.ExpandedImageUrl="../public/images/openfolder.gif";
    //判断是否需要权限判断
    if(Convert.ToString(drv["flag"])=="1")
    {
    tmpNd.NavigateUrl=""+Convert.ToString(drv["URL"])+"";
    tmpNd.Target="_blank";
    }
    else
    {
    tmpNd.NavigateUrl=drv["url"].ToString()                   tmpNd.Target="mainList";
    }
    //打开第一个菜单的2级菜单
    if(parentId=="-1"&&ShowMenu=="Y")
    {
    tmpNd.Expanded =true;
    ShowMenu="N";
    }

    Nds.Add(tmpNd);
    ShowTree(Nds[Nds.Count - 1].Nodes, intId);
    }
    }
      

  2.   

    http://www.microsoft.com/china/community/Column/21.mspx
      

  3.   

    void handleTree(TreeNode TR)
    {
    //对节点的处理代码
    for(int i = 0;i<TR.nodes.count;i++)
    {
        handleTree(TR.nodes[i]);
    }
    }