關於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);
}
}
效果圖