关于树形的菜单的展示(jquery+ajax+json)

jncharles 2010-05-31 04:58:20
如题,我登录后的页面应用了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获取
...全文
714 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jncharles 2010-06-02
  • 打赏
  • 举报
回复
上述问题已经解决,还是采用dtree吧,我的菜单数据量不大,一次性取出来也问题不大,遗憾的是上学那会学的数据结构都忘了,呵呵。谢谢各位了,另开个帖子子吧还有个问题,是关于dtree的。
少F 2010-06-01
  • 打赏
  • 举报
回复
表里面 放个表示 是否 有子节点的 标识符,点击 节点的时候 异步查询,然后 用CSS修饰 一下 就OK了
jncharles 2010-06-01
  • 打赏
  • 举报
回复
就是对一个树的遍历算法,有没有给个思路的
jncharles 2010-06-01
  • 打赏
  • 举报
回复
或者用下面的数据结构,用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' )
cy729215495 2010-06-01
  • 打赏
  • 举报
回复
一定要设计一个树形结构,才可以展示菜单????
hoojo 2010-06-01
  • 打赏
  • 举报
回复

做树,jQuery有这方面的插件、dtree也行;
后台显示树节点的查询语句一般都是这样的:
表结构:
+---------------------------------+
+id name parentId childCount +
+---------------------------------+

select * from tree where parentId = '当前点击节点的id'
首次查询第一级的节点,也就是根节点;
以后就根据用户点击的节点的id来查询子结点,就用上面的查询语句;
不建议一次将所有语句查询出来,那样性能可能不会很好、也不够人性化;
用户点击就查询出来
jncharles 2010-05-31
  • 打赏
  • 举报
回复
有没有自己写的代码?
Fairy_dy 2010-05-31
  • 打赏
  • 举报
回复
搞个dtree.js
jncharles 2010-05-31
  • 打赏
  • 举报
回复
现在用js如何展现是个问题啊
snowhite88 2010-05-31
  • 打赏
  • 举报
回复
是的,你再结合层叠样式表就可以实现了,如果要折叠估计要用到javascript.

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧