问题描述
比如:有两三个表,分别是电业局、供电局、供电所。在c#.net通过TreeView怎样实现动态生成树形结构呢?最顶层是:电业局,中层:供电局,最下层:供电所。请高手指点一下,给一个详细的代码说明?
解决方案
解决方案二:
不清楚你要的是怎么样的;不过应该说还是比较简单的;先获取这三个数据集;然后先对第一层绑定电业局;然后对此电业局下面的供电局从数据集里面检索出来绑定;同理绑定第三层;第二层和第三层的绑定写在DataItemBound事件里面;
解决方案三:
//绑定菜单树privatevoidBindTree(TreeViewtree){stringType=GetTreeType();if(Type==""){Type="1";}MenuBLLMenu=newMenuBLL();//获取数据集DataSetds=Menu.GetList("");//绑定树TreeNodenode=newTreeNode(this.lblTitle.Text);node.Value="0";node.NavigateUrl=GetUrl(Type)+Server.UrlEncode(node.Value);node.Target="childmain";tree.Nodes.Add(node);BindSubTree(node,"0",ds);}//递归函数privatevoidBindSubTree(TreeNodenode,stringParenID,DataSetds){stringType=GetTreeType();DataRow[]rows=ds.Tables[0].Select("ParentID="+ParenID);for(inti=0;i<rows.Length;i++){TreeNodeSubnode=newTreeNode();Subnode.Text=rows[i]["MenuName"].ToString();Subnode.Value=rows[i]["MenuID"].ToString();Subnode.Target="childmain";Subnode.NavigateUrl=GetUrl(Type)+Server.UrlEncode(rows[i]["MenuID"].ToString());node.ChildNodes.Add(Subnode);BindSubTree(Subnode,Subnode.Value,ds);}}
这个是无限级菜单树的绑定,比你的应该说还要复杂一些,参考一下吧
解决方案四:
我已解决了.代码如下:TreeNodemRoot=newTreeNode();mRoot.Text="根节点";mRoot.NavigateUrl="javascript:void(0);";this.TreeView1.Nodes.Add(mRoot);for(inti=0;i<10;i++){TreeNodet1=newTreeNode();t1.Text="Node"+i.ToString();t1.Value=i.ToString();t1.NavigateUrl="javascript:void(0);";mRoot.ChildNodes.Add(t1);AddLevelTwo(t1);}}privatevoidAddLevelTwo(TreeNodemNode){for(inti=0;i<5;i++){TreeNodet2=newTreeNode();t2.Text=mNode.Text+"_"+i.ToString();mNode.ChildNodes.Add(t2);AddLevelThree(t2);}}privatevoidAddLevelThree(TreeNodemNode){for(inti=0;i<5;i++){TreeNodet3=newTreeNode();t3.Text=mNode.Text+"_"+i.ToString();mNode.ChildNodes.Add(t3);}}
解决方案五:
递归