Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/1/30 1:01:31
DropDownList无限级分类(灵活控制显示形式)_[Asp.Net教程]

DropDownList无限级分类(灵活控制显示形式)_[Asp.Net教程]

DropDownList 实现无限级分类,主要使用递归实现,


数据库结构:


最终样式:


1protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!Page.IsPostBack)
4 {
5 BindDrpClass();
6 }
7 }
8 //绑定顶级分类
9 private void BindDrpClass()
10 {
11 Bll.Class classSystem = new Bll.Class();
12 DataTable dt = classSystem.GetClassList("").Tables[0];
13 ddlClass.Items.Clear();
14 ddlClass.Items.Add(new ListItem("添加根栏目","0"));
15 DataRow[] drs = dt.Select("ParentID= " + 0);
16
17 foreach (DataRow dr in drs)
18 {
19 string classid = dr["ClassID"].ToString();
20 string classname = dr["ClassName"].ToString();
21 //顶级分类显示形式
22 classname = "╋" + classname;
23
24 ddlClass.Items.Add(new ListItem(classname, classid));
25 int sonparentid = int.Parse(classid);
26 string blank = "├";
27 //递归子分类方法
28 BindNode(sonparentid, dt, blank);
29 }
30 ddlClass.DataBind();
31 }
32 //绑定子分类
33 private void BindNode(int parentid, DataTable dt, string blank)
34 {
35 DataRow[] drs = dt.Select("ParentID= " + parentid);
36
37 foreach (DataRow dr in drs)
38 {
39 string classid = dr["ClassID"].ToString();
40 string classname = dr["ClassName"].ToString();
41
42 classname = blank + classname;
43 ddlClass.Items.Add(new ListItem(classname, classid));
44
45 int sonparentid = int.Parse(classid);
46 string blank2 = blank + "─";
47
48 BindNode(sonparentid, dt, blank2);
49 }
50 }
数据访问(Bll里面的classSystem方法 )
1public DataSet GetClassList(string strWhere)
2 {
3 StringBuilder strSql = new StringBuilder();
4 strSql.Append("select * from tb_Class ");
5 if (strWhere.Trim() != "")
6 {
7 strSql.Append(" where " + strWhere);
8 }
9 return SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, strSql.ToString());
10 }


来源:http://www.cnblogs.com/chensubo







If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759