DropDownList 无限级分类(灵活控制显示形式)
主要使用递归实现,数据库结构:
最终样式:
复制 保存
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); }}