求助,后台左栏可折叠菜单怎么实现?
从数据库读出菜单,代码详细点,谢谢

解决方案 »

  1.   

    用Treeview 控件就可以了
    这方面的实例很多的 
      

  2.   

    超轻量级 JavaScript 横向动态菜单代码
    http://www.nextcool.cn/article.asp?id=538
      

  3.   

    谢谢,我把建表语句弄这吧,
    CREATE TABLE [dbo].[YZ_MenuInfo](
    [MenuID] [int] IDENTITY(1,1) NOT NULL,
    [MenuName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [Url] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [FatherID] [int] NULL,
    [SonID] [int] NULL,
     CONSTRAINT [PK_YZ_MenuInfo] PRIMARY KEY CLUSTERED 
    (
    [MenuID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]GO
      

  4.   

    用treeview,然后用递归!楼上说的对,再用下样式就好看了,也可用脚本实现
      

  5.   

    直接用个Label 从后台循环
      

  6.   

    数据库表这样设定,比如有3个字段
    id name parentID
    1  文学   -1
    2  体育   -1
    3  中国文学 1
    4  欧美文学 1
    5  篮球    2
    6  足球    2
    然后就可以用递归绑TreeView了
      /// <summary>
        /// 添加TreeView
        /// </summary>
        void addTreeView()
        {
            DataView dv = new DataView(GetSet().Tables[0]);
            AddTree(dv, -1, (TreeNode)null);
            
        }    /// <summary>
        /// 递归添加节点
        /// </summary>
        /// <param name="dvTree"></param>
        /// <param name="id"></param>
        /// <param name="pNode"></param>
        void AddTree(DataView dvTree, int id, TreeNode pNode)
        {        //过滤ParentID,得到当前的所有子节点   
            string rowFilter = "ParentID=" + id;      
            dvTree.RowFilter = rowFilter;
            foreach (DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {         //添加根节点   
                    Node.Text = Row["name"].ToString();                Node.Value = Row["id"].ToString();
                    TreeView1.Nodes.Add(Node);
                    Node.Expanded = false;
                    AddTree(dvTree, int.Parse(Row["id"].ToString()), Node);         //再次递归   
                }
                else
                {       //添加当前节点的子节点   
                    Node.Text = Row["name"].ToString();                Node.Value = Row["id"].ToString();
                    
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(dvTree, int.Parse(Row["id"].ToString()), Node);          //再次递归   
                }
            }
        }
    一个表就可以搞定