標籤:des io os ar for 資料 sp on cti
表設計:
id title parentid
1 asp.net 0
2 c# 0
3 c#_0 2
4 c#_1 3
5 c#_2 4
頁面中添加一個TreeView控制項
寫添加節點方法:
private void AddNode(int id, TreeNode parentnode)
{
string sql = "select * from menu";//sql 語句
DataTable table = DB.GetDB(sql);//擷取資料
DataView view = new DataView(table);//把表資料添加到自訂視圖中
view.RowFilter = "parentid="+id;//設定視圖查詢條件
foreach (DataRowView row in view)//遍曆視圖中資料
{ TreeNode node = new TreeNode();
node.Text = row[1].ToString();
int newid = Convert.ToInt32(row[0]);
if (parentnode != null)
{
node.Expanded = false;
parentnode.ChildNodes.Add(node);
AddNode(newid, node);//遞迴尋找節點
}
else
{
TreeView1.Nodes.Add(node);
AddNode(newid, node);
}
}
}
DB類中GetDB()方法:
public static SqlConnection sqlconn()
{ string sqlconnstr = "database=menutree;data source=.;uid=sa;pwd=123";
SqlConnection conn = new SqlConnection(sqlconnstr); return conn; }
public static DataTable GetDB(string sql)
{ SqlConnection connection = sqlconn();
SqlCommand comm = new SqlCommand(sql, connection);
SqlDataAdapter ad = new SqlDataAdapter(comm);
DataTable table = new DataTable();
ad.Fill(table);
return table; }
調用代碼:
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{ TreeView1.Nodes.Clear();
AddNode(0, (TreeNode)null);
} }
完成!
ASP.NET遞迴添加樹節點