asp.net TreeView递归循环子节点生成树形菜单实例
本文实例讲述了asp.netTreeView递归循环子节点生成树形菜单的方法。分享给大家供大家参考,具体如下:
这里主要用到递归循环获取子结点
///<summary> ///生成根节点 ///</summary> ///<paramname="treeview"></param> protectedvoidBindTreeView(longID,TreeViewtreeview) { DataTabledt=menuLogic.GetMenu2(ID,User.Identity.Name); treeview.Nodes.Clear(); DataRow[]parentrow=dt.Select("par_id=0"); for(inti=0;i<parentrow.Length;i++) { TreeNoderootnode=newTreeNode(); 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> ///<paramname="parentNode"></param> ///<paramname="datatable"></param> protectedvoidCreateChildNode(TreeNodeparentNode,DataTabledatatable) { DataRow[]rowlist=datatable.Select("par_id="+parentNode.Value); for(inti=0;i<rowlist.Length;i++) { TreeNodenode=newTreeNode(); 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="<ahref=\"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.netajax技巧总结专题》及《asp.net缓存操作技巧总结》。
希望本文所述对大家asp.net程序设计有所帮助。