欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net TreeView递归循环子节点生成树形菜单实例

程序员文章站 2023-12-10 22:50:34
本文实例讲述了asp.net treeview递归循环子节点生成树形菜单的方法。分享给大家供大家参考,具体如下: 这里主要用到递归循环获取子结点 /// <...

本文实例讲述了asp.net treeview递归循环子节点生成树形菜单的方法。分享给大家供大家参考,具体如下:

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

/// <summary>
/// 生成根节点
/// </summary>
/// <param name="treeview"></param>
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); //
    }
}
/// <summary>
/// 生成子节点
/// </summary>
/// <param name="parentnode"></param>
/// <param name="datatable"></param>
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 = "<a href=\"javascript:;\" onclick=\"openurl('" + rowlist[i]["url"].tostring().trim() + "',this)\">" + rowlist[i]["node_name"].tostring() + "</a>";
        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相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作xml技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。