DropDownList中显示无限级树形结构
生活随笔
收集整理的這篇文章主要介紹了
DropDownList中显示无限级树形结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
效果圖:
數據庫表:
DirID:目錄的ID,ParentID:目錄的父路徑ID,Name:目錄的名字
主要代碼:
using?System;
using?System.Collections;
using?System.Configuration;
using?System.Data;
using?System.Linq;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.HtmlControls;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Xml.Linq;
using?System.Data.SqlClient;
public?partial?class?DropdownlistTree : System.Web.UI.Page
{
protected?void?Page_Load(object?sender, EventArgs e)
{
if?(!IsPostBack)
{
DataTable datatable?=?this.GetDataTable();
DataRow[] row?=?datatable.Select("ParentID='-1'");
//添加根目錄
ListItem li?=?new?ListItem(row[0]["Name"].ToString());
DropDownList1.Items.Add(li);
addOtherDll("", Convert.ToInt32(row[0]["DirID"]), datatable,1);
}
}
/**?<summary>
///?添加其他節點
///?</summary>
///?<param name="Pading">空格</param>
///?<param name="DirId">父路徑ID</param>
///?<param name="datatable">返回的datatable</param>
///?<param name="deep">樹形的深度</param>
private?void?addOtherDll(string?Pading,?int?DirId, DataTable datatable,int?deep)
{
DataRow[] rowlist=datatable.Select("ParentID='"+DirId+"'");
foreach?(DataRow row?in?rowlist)
{
string?strPading?=?"";
for?(int?j?=?0; j?<?deep; j++)
{
strPading?+=?" ";?//用全角的空格
}
//添加節點
ListItem li?=?new?ListItem(strPading?+?"|--"?+?row["Name"].ToString());
DropDownList1.Items.Add(li);
//遞歸調用addOtherDll函數,在函數中把deep加1
addOtherDll(strPading,Convert.ToInt32(row["DirID"]), datatable,deep+1);
}
}
/**?<summary>
///?從數據庫中讀取數據返回datatable
///?</summary>
///?<returns></returns>
private?DataTable GetDataTable()
{
SqlConnection conn?=?newSqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString);
SqlDataAdapter adp?=?new?SqlDataAdapter("select * from Test", conn);
DataSet datset?=?new?DataSet();
conn.Open();
adp.Fill(datset,?"Test");
return?datset.Tables[0];
}
}
當然,當讀取DropDownList時若要去除"|--"和空格可以調用addOtherDll.SelectValue().Replace("|--","").Trim()
總結
以上是生活随笔為你收集整理的DropDownList中显示无限级树形结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不计免赔有必要买吗
- 下一篇: 建设银行转账限额标准