如题,我登录后的页面应用了framset框架,左侧是一个导航菜单,想根据登录用户的权限不同而展示不同的菜单,表结构如下:CREATE TABLE [dbo].[menus](
[orderid] [nchar](10) NOT NULL,
[menuid] [nchar](10) NOT NULL,
[menuname] [nchar](30) NOT NULL,
[Parentid] [nchar](10) NULL,
[Css] [nchar](100) NULL,
[url] [nchar](100) NULL,
 CONSTRAINT [PK_menus] PRIMARY KEY CLUSTERED 
(
[menuid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
表内容如下:
1          00001      AAAA                           00000      NULL NULL
2          00002      BBBB                           00001      NULL /lhcl.jsp                                                                                           
3          00003      CCCC                           00000      NULL NULL
4          00004      DDDD                          00003      NULL NULL
5          00005      EEEE                           00004      NULL NULL
6          00006      FFFF                         00005      NULL /a.jsp                                                                                              
7          00007      GGGG                           00000      NULL NULL
如何利用jaquery,用ul,li的形式展现出来,另外上述就是一个用户的所有菜单,这个我已经采用ajax+json获取

解决方案 »

  1.   

    是的,你再结合层叠样式表就可以实现了,如果要折叠估计要用到javascript.
      

  2.   

    或者用下面的数据结构,用javascript如何动态生成节点
    数据结构及测试数据DROP TABLE [sys_menu] 
    CREATE TABLE [sys_menu] ( [id] [varchar] (10) NOT NULL , 
    [name] [varchar] (50) NULL , [item] [int] NULL , [degree] [int] NULL , 
    [parent] [varchar] (10) NULL , [target] [varchar] (20) NULL , [url] [varchar] (100) NULL ) 
    ALTER TABLE [sys_menu] WITH NOCHECK ADD CONSTRAINT [PK_sys_menu] PRIMARY KEY NONCLUSTERED ( [id] ) INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '01' , '首页' , '0' , 'main' , 'index.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '02' , '任务操作' , '0' , '' , '' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0201' , '新增' , '02' , 'main' , 'input_task.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0202' , '专案' , '02' , 'main' , 'actionaspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '03' , '查询' , '0' , '' , '' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0301' , '清单' , '03' , 'main' , 'task.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0302' , '明细' , '03' , 'main' , 'history.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '030201' , '明细1' , '0302' , 'main' , 'history1.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '04' , '日常操作' , '0' , '' , '' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0401' , '输入' , '04' , 'main' , 'input_add.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0402' , '审核' , '04' , 'main' , 'chk_add.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0403' , '核准' , '04' , 'main' , 'chk_form.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '05' , '统计报表' , '0' , '' , '' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0503' , '效率图' , '05' , 'main' , 'chart_eresult.aspx' ) 
    INSERT [sys_menu] ( [id] , [name] , [parent] , [target] , [url] ) VALUES ( '0504' , '趋势图' , '05' , 'main' , 'chart_spen.aspx' ) 
      

  3.   

     表里面 放个表示 是否 有子节点的 标识符,点击 节点的时候 异步查询,然后 用CSS修饰 一下 就OK了
      

  4.   


    做树,jQuery有这方面的插件、dtree也行;
    后台显示树节点的查询语句一般都是这样的:
    表结构:
    +---------------------------------+
    +id   name  parentId   childCount +
    +---------------------------------+select * from tree where parentId = '当前点击节点的id'
    首次查询第一级的节点,也就是根节点;
    以后就根据用户点击的节点的id来查询子结点,就用上面的查询语句;
    不建议一次将所有语句查询出来,那样性能可能不会很好、也不够人性化;
    用户点击就查询出来
      

  5.   

    上述问题已经解决,还是采用dtree吧,我的菜单数据量不大,一次性取出来也问题不大,遗憾的是上学那会学的数据结构都忘了,呵呵。谢谢各位了,另开个帖子子吧还有个问题,是关于dtree的。