|
主要使用递归实现,数据库结构:
![]() 最终样式: ![]() 1
protected 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 }1 public 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 |
DropDownList无限级分类(灵活控制显示形式)
本文介绍了一种使用递归方法来实现多级分类结构的方法。通过C#代码示例展示了如何从数据库中获取分类信息,并将其展示为下拉列表的形式。文章详细解释了递归调用的过程以及如何处理顶级分类和子分类。






}
}

被折叠的 条评论
为什么被折叠?



