TreeView1里的数据如下a1
  a2
    a3
      a4
        a5
a1
  a22
    a3
      a4
a1
  a2
    a3
a1
  a22
aa如何取消重复的名字要的结果如下
a1
  a2
    a3
      a4
        a5
  a22
    a3
      a4
aa...自己弄了半天没整出来~

解决方案 »

  1.   

    這個應該是數據庫撈出來的資料吧?select數據的時候如果可以,就撈出唯一的 
      

  2.   

    数据放到Cache里了。用TABLE。SELECT应该解决不了。
      

  3.   

    这是一个递归生成树的代码 lz可以参考下 private void intiTree(TreeNode TNode, int parentId)
            {            DataView dv = new DataView(ds.Tables[0]);
                TreeNode tmpNd;
                int intId;
                dv.RowFilter = "itemid=" + parentId;
                foreach (DataRowView drv in dv)
                {
                    tmpNd = new TreeNode();
                    if (TNode == null)
                    {
                        tmpNd.Tag = drv["id"].ToString();
                        tmpNd.Text = drv["uname"].ToString();
                        tmpNd.Name = drv["id"].ToString();
                        intId = Convert.ToInt32(tmpNd.Tag);
                        intiTree(tmpNd, intId);
                        this.treeView1.Nodes.Add(tmpNd);
                    }
                    else
                    {
                        tmpNd.Tag = drv["id"].ToString();
                        tmpNd.Text = drv["uname"].ToString();
                        tmpNd.Name = drv["id"].ToString();
                        intId = Convert.ToInt32(tmpNd.Tag);
                        TNode.Nodes.Add(tmpNd);
                        intiTree(tmpNd, intId);                }            }        }
      

  4.   

    a1 
        a2 
            a3 
                a4 

                    a5 
        a22 
            a3 
                a4 

    aa 
    你这也重复了
      

  5.   

    1.用一个递归取出所有项和它们的父项
    2.在循环中将这些项以名字为Key填入一个Hashtable中,加一个try块,如果有重复它们将引发异常而无法填入Hashtable中
    3.获得的Hashtable即为无重复的项的集合,此时再用一个循环将它们填充到TreeView中即可