关于asp.net自动生成树形下拉列表(数据库版)

来源:互联网 发布:知我药妆是正品吗 编辑:程序博客网 时间:2024/05/11 03:29

在 网上找了很久没找到树没找到树形下拉列表,于是自已写了一个,(平时工作忙,没时间,这段时间轻松点)给大家分享分享,有什么不足之处还需广大程序员同志们提一提

功能:无限级树形下拉列表,通过数据库绑定

表结构:最少也要两个字段 [ ID , FATHER_ID ] (varchar型最好) 既它们成父子关系

具体代码:

    //数据获取
    protected void dropDataCon()
    {
        DataSet ds = GetDropListDate();                                  //这个是获取下拉列表的数据表也就是上面那个表
        this.ViewState["DataSet"] = ds;
        AddDropDownListItem(启始ID);
        drop_DirList.Items.Insert(0, new ListItem(@"/", 启始ID));
    }

    //递归生成树形下拉列表

    private static string nbsp = "";                                              //公共变量(一定要有)
    protected void AddDropDownListItem(string ID)   //这个ID参数是指你从那个层次开始生成(启始ID)
    {
        DataSet ds = (DataSet)this.ViewState["DataSet"];
        DataView dv = new DataView(ds.Tables[0]);
        dv.RowFilter = "FATHER_ID = '" + ID+ "'";

        foreach (DataRowView drv in dv)
        {

            drop_DirList.Items.Add(new ListItem(nbsp + drv["DIR_NAME"].ToString(), drv["DIR_ID"].ToString()));
            nbsp += "  ";
            AddDropDownListItem(drv["DIR_ID"].ToString());
            nbsp = nbsp.Remove(nbsp.Length - 2);
        }
    }

效果图

 

 

原创粉丝点击