|zyciis| 用什么方法来排这个多级菜单最快 谢谢

zyciis143 2010-10-21 11:48:16
如我数据库有数据
ID ParentID Name
1 0 服装
2 1 上衣
3 1 鞋子
4 2 运动鞋
5 0 电器
6 5 大家电
7 5 厨房电器
8 6 冰箱
9 6 洗衣机
10 7 电饭锅
生成如
服装
  上衣
  鞋子
    运动鞋
电器
  大家电
    冰箱
    洗衣机
  厨房电器
    电饭锅
--------------------
然后我现在有分类数据
2 上衣
9 洗衣机
10 电饭锅
------------
那代码要怎么写排出
服装
  上衣
电器
  大家电
    洗衣机
  厨房电器
    电饭锅
这种效果最快?
我现在的方法是取每一个再一级一级算上去,如果发现已经添加的话就跳过

那有没有什么更好的办法?
...全文
98 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookyzlr 2010-10-22
  • 打赏
  • 举报
回复
最好不要一次全查出来,就像楼上大哥说的,先查父项,点击后再查子项最好。
zyciis143 2010-10-22
  • 打赏
  • 举报
回复
谢谢 楼上的各位。
-------------
但是我这里不是作为一个多线菜单,
也不用考虑我的其他作用

我只是要在我现在的菜单数据,然后根据数据库里面的数据
生成我的菜单(要一次显示出所有,所以和Ajax,缓存什么的不要这个需求之内)

谢谢,
我只想知道哪种算法算出我的菜单最好

我现在的方法是
1:生成一个菜单列表
2:读取每一个我现在的菜单向上查找他的父菜单,如果父级菜单不存在我的菜单中添加,同时也添加当前
3:最后对生成的菜单列表进行向下一级一级的找出子菜单 最后生成我的菜单

因为我上面感觉写的方法是最傻的,感觉性能不是很好

所以来请教各位大牛了

谢谢
孟子E章 2010-10-22
  • 打赏
  • 举报
回复
数据不多,全都读取出来,放在缓存里面,共所有用户共用
Tanhualin 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
sql 形成树结构
teeview递归repeater嵌套
先大类,在点击获取子类
[/Quote]
FocusNT 2010-10-22
  • 打赏
  • 举报
回复
读取出来,用LINQ+递归来实现
FocusNT 2010-10-22
  • 打赏
  • 举报
回复
读取出来,用LINQ来筛选
孟子E章 2010-10-22
  • 打赏
  • 举报
回复
是菜单还是树?
gongsun 2010-10-22
  • 打赏
  • 举报
回复
直接写在 js文件中,用js数组,或者 xml文件中,

直接读文件 会比数据库绑定服务器控件快的多。
MSDNXGH 2010-10-22
  • 打赏
  • 举报
回复
JS+DIV,制成多级菜单,也很快,大体原理是DIV是绝对定位,初始时,为不可见,通过经过,和离开时激发JS事件,可见性设为可见。。。
porschev 2010-10-22
  • 打赏
  • 举报
回复
AJAX....

先出第一层。。。点击异步请求下一层。。

添加到数形结构上。。
bychgh 2010-10-22
  • 打赏
  • 举报
回复
帮顶~~~~~~~~~~~
wuyq11 2010-10-21
  • 打赏
  • 举报
回复
sql 形成树结构
teeview递归
repeater嵌套
先大类,在点击获取子类

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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