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程序设计有所帮助。