短信优惠券,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程序设计有所帮助。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论