ArrayList list=new ArrayList();
DataSet ds=SqlHelper.ExecuteDataset(sqlcon,CommandType.StoredProcedure,"CMRC_ShowAllProducts");//取得DATASET
DataView dv=new DataView();
dv.Table=ds.Tables[0];
DataRow[] dr=dv.Table.Select("","CategoryId");
for(int i=0;i<dr.Length;i++)
{
if(!list.Contains(dr[i]["CategoryId"])&&(dr[i]["CategoryId"]!=null))
list.Add(dr[i]["CategoryId"]);
}
for(int i=0;i<list.Count;i++)
{
TreeNodeCollection Nds=new TreeNodeCollection();
dv.RowFilter="CategoryId='"+list[i]+"'";
foreach(DataRowView drv in dv)
{
TreeNode Tnode=new TreeNode();
Tnode.ID=drv["ProductId"].ToString();
Tnode.Text=drv["ModelName"].ToString();
Tnode.CheckBox=true;
Nds.Add(Tnode);

}//其实我这里没有用递归 因为只显示两级树
但是程序运行后什么都每有??????????????? }
我再问稳TREEVIEW.NODES和TreeNodeCollection 是什么关系 有什么区别

解决方案 »

  1.   

    你做完了子树以后又没有Add到TREEVIEW.Nodes下面?treeNodeCollection 是一个类型
    TREEVIEW.NODES 就是treeNodeCollection实例关系就是 类(Class) 和 类实例(instance) 的关系
    区别?!不是同一类事务没法比较
      

  2.   

    首先查看你的sql,是否确实读出数据,其次你的程序结构是错的,我把treewiew的结构,给你描述出来,然后你再修改你的程序吧.     
                  node1
                      node11
                      node12
                         node111
                         node112
                         node113
                      node13
                  node2
                  node3
    你上面的程序思想错误,主要在对treewiew的理解上,需要说明的是,不要动态创建treewiew,应该把treeview拖到页面上,然后再通过ID对它控制.比如你的ID是Treeview1,那么:
                  TreeNode Tnode=new TreeNode(); //(1)
         Tnode.ID=你的值
                  Tnode.Text=你的值
         treeview1.Add(Tnode);
    下次在对treeview1插入的是子节点,不能每次都创建node,你这样写是错的(TreeNodeCollection Nds=new  TreeNodeCollection();),第二次在插入接点时,应该用(1)处的Tnode.不然你每次都创建
    程序是对的,但你每次创建的node都没有关系.当然就显示不出来了.
    你照次思路,重新做,如再有问题在发上来 ~~
      

  3.   

    TREEVIEW.NODES和TreeNodeCollection 是什么关系 有什么区别?看看微软的MSDN .netFramework的帮助,上面都有。有些问题先查查这些帮助文档,才能提高。
      

  4.   

    给你个思路:
            
                  TreeNode Tnode1=new TreeNode(); 
         Tnode.ID=你的值;
                  Tnode.Text=你的值;
         treeview1.Add(Tnode1); //一级接点
                  TreeNode Tnode11=new TreeNode(); 
         Tnode.ID=你的值;
                  Tnode.Text=你的值;
                  Tnode1.Add(Tnode11);//二级接点
    这是只有一个一级接点,一个子接点的思路.如果有很多接点,那么就要递归.