首页 > 代码库 > ASP.NET递归添加树节点
ASP.NET递归添加树节点
表设计如图:
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递归添加树节点