我是新手,请教一些基本的问题,谢谢各位的耐心指教!~
treeview的基本用法?

解决方案 »

  1.   

    顶!怎么使数据库和TREEVIEW相关联啊!
      

  2.   

    查询出数据放入DataView 中,然后在用一个循环填加啦
      

  3.   

    我们是初学者,能不能给解释的清楚一些啊。谢谢了!!怎么用foreach递规,显示各个节点的名称?
      

  4.   

    晕,好像TreeView很普遍
    private void showtreeintreeview(int id, TreeNode node) 

    /////////////////////////
    建立连接,省略
    /////////////////////////
    DataSet ds = new DataSet(); 
    adapter.Fill(ds); 
    DataView dv = ds.Tables[0].DefaultView; 
    dv.RowFilter = "pid=" + id.ToString(); //父节点和子节点的连接,用过滤的方式
    TreeNode item; 
    foreach (DataRowView dr in dv) 

    if (node == null) 

    item = new TreeNode(); 
    item.Text=dr["title"].ToString();//节点的内容,
                      item.NavigateUrl=dr["url"].ToString();//节点的连接
    TreeView1.Nodes.Add(item); 
    showtreeintreeview(Convert.ToInt32(dr["id"]), item); //一个递归循环,

    else 
    {  
    item = new TreeNode(); 
    item.Text=dr["title"].ToString();
    node.Nodes.Add(item); 
    showtreeintreeview(Convert.ToInt32(dr["id"]), item); 
    item.NavigateUrl=dr["url"].ToString();
    }

    }
      

  5.   

    设计数据表时,结构如下
    ID,Name,ParentID,...如记录如下
    01    AA   -1
    0101  AA01 01
    0102  AA02 01
    02    BB   -1
    0201  BB01 02
    02011 x    0201
    02012 y    0201
    0202  BB02 02显示在树中
    AA
      AA01
      AA02
    BB
      BB01
          X
          Y
      BB02
    如果有了这们的结构,树可以无穷无尽的有下级了,哈哈
    程序打开此表,读取数据。我已实现
    写个大致的算法,直接写的,看明白就行了
    public void CreateTreeView(TreeView p_treeView,DataTable p_dataTable,string p_IDField,string p_NameField,string p_ParentIDField,string p_RootValue)
    {
         DataView dv = p_dataTable.Table; 
         //把第一级的数据过滤出来作为树的第一层
         dv.Filter = "p_IDField = '" RootValue + "'";     foreach(DataRowView dr in dv.Rows)
         {
             TreeNode node = new TreeNode ();         node.Tag = dr[p_IDField].ToString();   //值
             node.Text= dr[p_NameField].ToString(); //显示在节点上的文本
             p_treeView.Nodes.Add(node);         //为第个节点添加它的子节点
             GetChildren(node,p_dataTable,p_IDField,p_NameField, p_ParentIDField, p_RootValue)
         }     }
    public void GetChildren(TreeNode p_node,DataTable p_dataTable,string p_IDField,string p_NameField,string p_ParentIDField,string p_ParentValue)
    {
         DataView dv = p_dataTable.Table; 
         //找出它的子级
         dv.Filter = "p_ParentIDField= '" ParentValue+ "'";     foreach(DataRowView dr in dv.Rows)
         {
             TreeNode node = new TreeNode ();         node.Tag = dr[p_IDField].ToString();   //值
             node.Text= dr[p_NameField].ToString(); //显示在节点上的文本
             p_node.Nodes.Add(node);         //递归找出他的子级
             CreateChildren(node,p_dataTable,p_IDField,p_NameField, p_ParentIDField, dr[dr[p_IDField].ToString()])
         }     
    }
    由于是直接在这写的,可以有些误差,编译调试一下如果确实需要,我把这个段代码的详细实现放到网上
    http://blog.csdn.net/flygoldfish