数据库结构
表名:Product_Class
Product_Class_id           Name            Parent            Depth
    1                       aa               0                1
    2                       bb               0                1
    3                       aa1              1                2
    4                       aa2              1                2
    5                       bb1              2                2
    6                       bb2              2                2
 表名:Product_List
Product_List_ID             Product_Class_ID           Name
    1                         3                        aa1product
    2                         4                        aa2product
    3                         5                        bb1product
    4                         6                        bb2product
      
我想用treeview控件实现如下的功能,一开始列出depth=1的所有类别名字
点一下+号列出下一级的类别,依次类推,直到点到最后一层。在最后一层中列出属于这个类别下的产品名字,并且每一个产品名字前面有一个复选框如过选中的话它的value就为它的ID值?
现在类别显示已经成功,但要在最后一级类别下面显示商品,应该怎么改??
最后的效果如:
                +aa
                 +aa1
                  +aa1product
                 +aa2
                  +aa2product
                +bb
                 +bb1
                  +bb1product
                 +bb2
                  +bb2product

解决方案 »

  1.   

    显示类别的程序如下,高手们帮我看看怎么改!!
    private void Page_Load(object sender, System.EventArgs e)
    {
    string SelectMember_Name="select * from Product_Class,Product_List where isvalid=0";
    SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    myConnection.Open();
    SqlCommand cmd1 = new SqlCommand(SelectMember_Name,myConnection);
    SqlDataAdapter adp = new SqlDataAdapter(SelectMember_Name,myConnection);
    DataSet ds=new DataSet();
    adp.Fill(ds);
    this.ViewState["ds"]=ds; 
    AddTree(0, (TreeNode)null); }
    public void AddTree(int Parent,TreeNode pNode) 
    { DataSet ds=(DataSet) this.ViewState["ds"]; 
    DataView dvTree = new DataView(ds.Tables[0]);
    //过滤ParentID,得到当前的所有子节点
    dvTree.RowFilter =  "[Parent] = " + Parent;
    foreach(DataRowView Row in dvTree) 
    { TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {    //添加根节点
    Node.Text = Row["Name"].ToString();
    TreeView1.Nodes.Add(Node);
    Node.Expanded=true;
    AddTree(Int32.Parse(Row["Product_Class_ID"].ToString()), Node);    //再次递归

    else 
    {  //添加当前节点的子节点 Node.Text = Row["Name"].ToString();
    pNode.Nodes.Add(Node);
    Node.Expanded = false;
    AddTree(Int32.Parse(Row["Product_Class_ID"].ToString()),Node);     //再次递归 } }      
    }
      

  2.   

    http://www.cnblogs.com/goody9807/archive/2005/07/06/187209.html