1. 程式人生 > >關於asp.net自動生成樹形下拉列表(資料庫版)

關於asp.net自動生成樹形下拉列表(資料庫版)

在 網上找了很久沒找到樹沒找到樹形下拉列表,於是自已寫了一個,(平時工作忙,沒時間,這段時間輕鬆點)給大家分享分享,有什麼不足之處還需廣大程式設計師同志們提一提

功能:無限級樹形下拉列表,通過資料庫繫結

表結構:最少也要兩個欄位 [ 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);
        }
    }

效果圖