標籤:.net 遞迴 treeview
1.代碼如下:
private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Clear();//清空 樹的所有節點
List<T_NavigationModel> Fnods = new T_NavigationBLL().GetModelList("Npid=0");//擷取所有根節點
if (Fnods.Count <= 0)//判斷要添加的節點個數是否為0,為0則取消
return;
foreach (var a in Fnods)//遍曆節點,將節點添加到treeView1控制項
{
TreeNode fnode = new TreeNode();
fnode.Text = a.Nname;
treeView1.Nodes.Add(fnode);//將節點添加到treeView1控制項
fillchildnods(fnode, a.Nid.ToString());//調用方法,擷取 此節點的子節點
}
}
/// <summary>
/// 遞迴調用方法,擷取節點的子節點
/// </summary>
/// <param name="node">節點,將擷取的子節點添加到此節點下</param>
/// <param name="pid">父節點id</param>
private void fillchildnods(TreeNode node, string pid)
{
List<T_NavigationModel> Fnods = new T_NavigationBLL().GetModelList("Npid=" + pid);//擷取所有子節點
if (Fnods.Count <= 0)//判斷要添加的節點個數是否為0,為0則取消
return;
foreach (var a in Fnods)//遍曆節點,將節點添加到node節點
{
TreeNode fnode = new TreeNode();
fnode.Text = a.Nname;
node.Nodes.Add(fnode);//將節點添加到node節點
fillchildnods(fnode, a.Nid.ToString());//繼續擷取子節點
}
}