asp.net中TreeView如何递归循环子节点生成树形菜单-创新互联

这篇文章给大家分享的是有关asp.net中TreeView如何递归循环子节点生成树形菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

洛龙网站建设公司创新互联建站,洛龙网站设计制作,有大型网站制作公司丰富经验。已为洛龙上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的洛龙做网站的公司定做!

具体如下:

这里主要用到递归循环获取子结点

/// 
/// 生成根节点
/// 
/// 
protected void BindTreeView(long ID, TreeView treeview)
{
    DataTable dt = menuLogic.GetMenu2(ID, User.Identity.Name);
    treeview.Nodes.Clear();
    DataRow[] parentrow = dt.Select("par_id=0");
    for (int i = 0; i < parentrow.Length; i++)
    {
      TreeNode rootnode = new TreeNode();
      rootnode.Text = parentrow[i]["node_name"].ToString(); //parentrow[i][3].ToString();
      rootnode.Value = parentrow[i]["ID"].ToString(); //parentrow[i][1].ToString(); 主键
      rootnode.Expanded = true;
      rootnode.Selected = false;
      rootnode.SelectAction = TreeNodeSelectAction.None;
      treeview.Nodes.Add(rootnode);
      CreateChildNode(rootnode, dt); //
    }
}
/// 
/// 生成子节点
/// 
/// 
/// 
protected void CreateChildNode(TreeNode parentNode, DataTable datatable)
{
    DataRow[] rowlist = datatable.Select("par_id=" + parentNode.Value);
    for (int i = 0; i < rowlist.Length; i++)
    {
      TreeNode node = new TreeNode();
      if (datatable.Select("par_id=" + rowlist[i]["ID"].ToString().Trim()).Length > 0)
      {
        node.Text = rowlist[i]["node_name"].ToString();
        node.Value = rowlist[i]["ID"].ToString();
      }
      else
      {
        node.Text = "" + rowlist[i]["node_name"].ToString() + "";
        node.Value = rowlist[i]["ID"].ToString();
      }
      node.Expanded = false;
      node.Selected = false;
      node.SelectAction = TreeNodeSelectAction.None;
      parentNode.ChildNodes.Add(node);
      CreateChildNode(node, datatable); //递归调用
    }
}

感谢各位的阅读!关于“asp.net中TreeView如何递归循环子节点生成树形菜单”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网页标题:asp.net中TreeView如何递归循环子节点生成树形菜单-创新互联
标题网址:http://pwwzsj.com/article/dsspod.html