DropDownList无限级分类(灵活控制显示形式)

来源:互联网 发布:正品高仿淘宝特卖 编辑:程序博客网 时间:2024/05/16 14:18
主要使用递归实现,数据库结构:
单击显示全图,Ctrl+滚轮缩放图片


最终样式:
单击显示全图,Ctrl+滚轮缩放图片



复制  保存
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());}