节点是从数据库获得的,具体该 如何实现,详细点

解决方案 »

  1.   

    http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&q=%E4%BA%8C%E5%8F%89%E6%A0%91%E9%80%92%E5%BD%92&meta=&aq=f
      

  2.   

    public void bindtree()
        {
            DataSet NavBardata = new DataSet();
            string useraccouts = Session["USERACCOUNTS"].ToString();
            NavBardata = BLL.SYSDB.Navbar_view.GetList(" useraccounts='" + useraccouts + "'");
          
            int[] gmid = new int[50]; //用来记录表中的gmid字段中的数据,因为在NavBardata中的gmid字段有很多重复,是为了不重复加载功能组到TreeView上。
            bool flag = true;
            int j = 0;
            navBar.Nodes.Clear();
            if (NavBardata.Tables[0].Rows.Count == 0)
            {
                Label1.Text = "对不起,您所拥有的角色已被删除或被关闭,请与系统管理员联系!";
            }
            foreach (DataRow item in NavBardata.Tables[0].Rows)    //item指向表中记录的下一行。
            {
                flag = true;
                if (j == 0)
                {
                    gmid[j] = Convert.ToInt32(item["gmid"]);
                    //j++;
                }
                else
                {
                    for (int k = 0; k < j; k++)
                        if (Convert.ToInt32(item["gmid"]) == gmid[k])
                        {
                            flag = false;
                            break;
                        }
                }
                if (flag == true)
                {                if (j != 0)
                    {
                        gmid[j] = Convert.ToInt32(item["gmid"]);
                    }
                    j++;
                    TreeNode RootNode = new TreeNode();
                    RootNode.Text = item["gmname"].ToString();
                    if (item["gmiconlink"].ToString().Trim() != "" && item["gmiconlink"].ToString() != null)
                    {
                        RootNode.ImageUrl = item["gmiconlink"].ToString();
                    }
                    RootNode.SelectAction = TreeNodeSelectAction.Expand;
                    RootNode.CollapseAll();
                    navBar.Nodes.Add(RootNode);
                    foreach (DataRow litem in NavBardata.Tables[0].Rows)
                    {
                        if (Convert.ToInt32(litem["gmid"]) == Convert.ToInt32(item["gmid"]))
                        {
                            TreeNode SubNode = new TreeNode();
                            SubNode.Text = litem["bmname"].ToString();
                            if (item["bmiconlink"].ToString().Trim() != "" && item["bmiconlink"].ToString() != null)
                            {
                                SubNode.ImageUrl = litem["bmiconlink"].ToString();
                            }
                            SubNode.NavigateUrl = litem["bmpagelink"].ToString();
                            SubNode.Target = "rightFrame";
                            RootNode.ChildNodes.Add(SubNode);
                        }
                    }
                }
            }
        }这是我在项目中用到的,你可以试着改改。
      

  3.   

    就是递归,你使用Google或者Baidu应该能找到你需要的内容