当前位置: 代码迷 >> ASP.NET >> TreeView 建树,该怎么解决
  详细解决方案

TreeView 建树,该怎么解决

热度:9372   发布时间:2013-02-25 00:00:00.0
TreeView 建树
有一段数据如下想建一棵树
172,173,405,415
172,173,405,416
172,172,405,417
179,208,209,2010
179,208,209,2011
....

想做出这样的效果:
|-172
| |-173
| |-405
| |-415
| |-416
| |-417
|
|
|-179
| |-206
| |-207
| |-208
| |-209
| |-2011

 




------解决方案--------------------------------------------------------
C# code
DataTable DataC = new DataTable();public void CreateNodesOfParent(int iParent,TreeNode pNode)         {            DataView dvwData = new DataView(DataC);            dvwData.RowFilter =  "[UpperID] = " + iParent;            TreeView1.AutoSelect = false;            foreach(DataRowView Row in dvwData)             {                                if(pNode == null)                 {                    TreeNode zNode= new TreeNode();                    zNode.Text=Row["Name"].ToString();                    zNode.ID =Row["ID"].ToString();                    zNode.NavigateUrl ="CategoryList.aspx?parent_id="+Row["ID"].ToString()+                        "&parent_name="+Row["Name"].ToString();                    zNode.Target ="right";                    zNode.ImageUrl="../images/folder.gif";                    zNode.Expanded=true;                    TreeView1.Nodes.Add (zNode);                    CreateNodesOfParent(Int32.Parse(Row["ID"].ToString()),zNode);                }                 else                 {                    TreeNode zNode= new TreeNode();                    zNode.Text=Row["Name"].ToString ();                    zNode.ID =Row["ID"].ToString ();                    zNode.NavigateUrl ="CategoryList.aspx?parent_id="+Row["ID"].ToString()+                        "&parent_name="+Row["Name"].ToString();                    zNode.Target ="right";                    zNode.ImageUrl="../images/folder.gif";                    pNode.Nodes.Add(zNode);                    CreateNodesOfParent(Int32.Parse(Row["ID"].ToString()),zNode);                    }            }                    }CreateNodesOfParent(0,(TreeNode)null);
------解决方案--------------------------------------------------------
C# code
string strs;        string[] str=new string[4];        TreeNode tn;        TreeNode tn1;        TreeNode tn2;        TreeNode tn3;        private void Page_Load(object sender, System.EventArgs e)        {            if(!IsPostBack)            {                using(SqlConnection conn=new SqlConnection("server=.;database=master;uid=sa;pwd=sa"))                {                    SqlDataAdapter da=new SqlDataAdapter("select a from p order by a",conn);                    DataSet ds=new DataSet();                    da.Fill(ds);                    for(int i=0;i<ds.Tables[0].Rows.Count;i++)                    {                        strs=ds.Tables[0].Rows[i]["a"].ToString();                        str=strs.Split(",".ToCharArray());                        if(ViewState["str0"]==null||ViewState["str0"].ToString()!=str[0])                        {                            ViewState["str0"]=str[0];                            tn=new TreeNode();                            tn.Text=str[0];                            tn.Target=str[0];                            TreeView1.Nodes.Add(tn);                            if(ViewState["str1"]==null||ViewState["str1"].ToString()!=str[1])                            {                                ViewState["str1"]=str[1];                                tn1=new TreeNode();                                tn1.Text=str[1];                                tn1.Target=str[1];                                tn.Nodes.Add(tn1);                                if(ViewState["str2"]==null||ViewState["str2"].ToString()!=str[2])                                {                                    ViewState["str2"]=str[2];                                    tn2=new TreeNode();                                    tn2.Text=str[2];                                    tn2.Target=str[2];                                    tn1.Nodes.Add(tn2);                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                            }                            else                            {                                if(ViewState["str2"]==null||ViewState["str2"].ToString()!=str[2])                                {                                    ViewState["str2"]=str[2];                                    tn2=new TreeNode();                                    tn2.Text=str[2];                                    tn2.Target=str[2];                                    tn1.Nodes.Add(tn2);                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                                else                                {                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                            }                        }                        else                        {                            if(ViewState["str1"]==null||ViewState["str1"].ToString()!=str[1])                            {                                ViewState["str1"]=str[1];                                tn1=new TreeNode();                                tn1.Text=str[1];                                tn1.Target=str[1];                                tn.Nodes.Add(tn1);                                if(ViewState["str2"]==null||ViewState["str2"].ToString()!=str[2])                                {                                    ViewState["str2"]=str[2];                                    tn2=new TreeNode();                                    tn2.Text=str[2];                                    tn2.Target=str[2];                                    tn1.Nodes.Add(tn2);                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                            }                            else                            {                                if(ViewState["str2"]==null||ViewState["str2"].ToString()!=str[2])                                {                                    ViewState["str2"]=str[2];                                    tn2=new TreeNode();                                    tn2.Text=str[2];                                    tn2.Target=str[2];                                    tn1.Nodes.Add(tn2);                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                                else                                {                                    if(ViewState["str3"]==null||ViewState["str3"].ToString()!=str[3])                                    {                                        ViewState["str3"]=str[3];                                        tn3=new TreeNode();                                        tn3.Text=str[3];                                        tn3.Target=str[3];                                        tn2.Nodes.Add(tn3);                                    }                                }                            }                        }                    }                }            }        }
  相关解决方案