主要使用递归实现,数据库结构: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindDrpClass(); } } //绑定顶级分类 private void BindDrpClass() { Bll.Class classSystem = new Bll.Class(); DataTable dt = classSystem.GetClassList("").Tables[0]; ddlClass.Items.Clear(); ddlClass.Items.Add(new ListItem("添加根栏目", "0")); DataRow[] drs = dt.Select("ParentID= " + 0); foreach (DataRow dr in drs) { string classid = dr["ClassID"].ToString(); string classname = dr["ClassName"].ToString(); //顶级分类显示形式 classname = "╋" + classname; ddlClass.Items.Add(new ListItem(classname, classid)); int sonparentid = int.Parse(classid); string blank = "├"; //递归子分类方法 BindNode(sonparentid, dt, blank); } ddlClass.DataBind(); } //绑定子分类 private void BindNode(int parentid, DataTable dt, string blank) { DataRow[] drs = dt.Select("ParentID= " + parentid); foreach (DataRow dr in drs) { string classid = dr["ClassID"].ToString(); string classname = dr["ClassName"].ToString(); classname = blank + classname; ddlClass.Items.Add(new ListItem(classname, classid)); int sonparentid = int.Parse(classid); string blank2 = blank + "─"; BindNode(sonparentid, dt, blank2); } } public DataSet GetClassList(string strWhere) { StringBuilder strSql = new StringBuilder(); strSql.Append("select * from tb_Class "); if (strWhere.Trim() != "") { strSql.Append(" where " + strWhere); } return SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, strSql.ToString()); }
最终样式:
DropDownList无限级分类灵活控制显示形式
最新推荐文章于 2025-09-03 15:58:35 发布
