当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net TreeView递归循环子节点生成树形菜单实例

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

短信优惠券,ps字体设计,广州yy房产网

本文实例讲述了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程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网