使用ASP.NET,JQuery和Suckerfish构建数据库驱动的菜单

我正在尝试使用Suckerfish css菜单和Jquery从表创建菜单。 我正在使用它作为我的参考: 使用ASP.NET和JQuery的Suckerfish菜单,我使用手动提供的链接(非常类似于文章)。

我遇到问题的地方是编写递归函数以从数据库中获取菜单项并在适当的层次结构中创建新的菜单项。 我的数据库表如下所示:

表格菜单


MenuID ParentID链接文本

这个想法是,如果一个项目是父级项目,则MenuID和ParentID是相同的,如果它是一个子项,它将在ParentID字段中具有它的父项的MenuID。 我需要创建一个function,可以通过并找到父母的所有子项(可能是几个级别),并让它替换这样的手动条目:

Dim Foo As New MenuItem("#", "Foo", Me) Items.Add(Foo) Foo.Items.Add(New MenuItem("#", "1", Me)) Foo.Items.Add(New MenuItem("#", "2", Me)) Foo.Items.Add(New MenuItem("#", "3", Me)) Foo.Items.Add(New MenuItem("#", "4", Me)) 

我愿意在必要时更改数据库表结构,并基本上做其他事情来实现这一目标。

感谢您的任何意见,我们非常感谢。

表示分层数据的方法对于人类来说很容易理解,但很难从中提取数据,因为它需要递归来提取完整​​的层次结构。 一些SQL的命令会为你做这个,但这就是幕后的情况。

我建议您阅读SQL中的更多树和层次结构 ,并使用它解释的物化路径方法重构您的模式。 它很容易查询和扩展真的很好。