主要使用递归实现,数据库结构:
笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)

最终样式:
笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)

 1笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)protected void Page_Load(object sender, EventArgs e)
 2            if (!Page.IsPostBack)
 4                    BindDrpClass();
 6笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        }
 7笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    }
 8笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    //绑定顶级分类
 9笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    private void BindDrpClass()
10            Bll.Class classSystem = new Bll.Class();
12笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        DataTable dt = classSystem.GetClassList("").Tables[0];
13笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        ddlClass.Items.Clear();
14笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        ddlClass.Items.Add(new ListItem("添加根栏目","0"));
15笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        DataRow[] drs = dt.Select("ParentID= " + 0);
16笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
17笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        foreach (DataRow dr in drs)
18                    string classid = dr["ClassID"].ToString();
20笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            string classname = dr["ClassName"].ToString();
21笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            //顶级分类显示形式
22笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            classname = "" + classname;
23笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
24笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            ddlClass.Items.Add(new ListItem(classname, classid));
25笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            int sonparentid = int.Parse(classid);
26笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            string blank = "";
27笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            //递归子分类方法
28笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            BindNode(sonparentid, dt, blank);
29笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        }
30笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        ddlClass.DataBind();
31笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    }
32笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    //绑定子分类
33笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    private void BindNode(int parentid, DataTable dt, string blank)
34            DataRow[] drs = dt.Select("ParentID= " + parentid);
36笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
37笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        foreach (DataRow dr in drs)
38                    string classid = dr["ClassID"].ToString();
40笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            string classname = dr["ClassName"].ToString();
41笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
42笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            classname = blank + classname;
43笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            ddlClass.Items.Add(new ListItem(classname, classid));
44笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
45笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            int sonparentid = int.Parse(classid);
46笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            string blank2 = blank + "";
47笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)
48笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            BindNode(sonparentid, dt, blank2);
49笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        }
50笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)    }

public DataSet GetClassList(string strWhere)
 2                    StringBuilder strSql = new StringBuilder();
 4笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            strSql.Append("select * from tb_Class ");
 5笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            if (strWhere.Trim() != "")
 6                            strSql.Append(" where " + strWhere);
 8笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            }

 9笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)            return SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, strSql.ToString());
10笔记:DropDownList无限级分类(灵活控制显示形式)
    





            
笔记:DropDownList无限级分类(灵活控制显示形式)        }


源码下载:
https://files.cnblogs.com/chensubo/RecursionDemo.rar

相关文章: