Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)归海一刀published in(发表于) 2014/1/30 1:01:31 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);1617 foreach (DataRow dr in drs)18 {19 string classid = dr["ClassID"].ToString();20 string classname = dr["ClassName"].ToString();21 //顶级分类显示形式22 classname = "╋" + classname;2324 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);3637 foreach (DataRow dr in drs)38 {39 string classid = dr["ClassID"].ToString();40 string classname = dr["ClassName"].ToString();4142 classname = blank + classname;43 ddlClass.Items.Add(new ListItem(classname, classid));4445 int sonparentid = int.Parse(classid);46 string blank2 = blank + "─";4748 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
赞