我需要从数据库(具有n个子类别级别的类别)填充具有层次结构的ASP.NET菜单控件,其中菜单项可以不断更改。
有一些方法,我想知道哪一个是最有效的方法。
我有这些想法:
答案 0 :(得分:3)
ASP.NET菜单控件可以通过SiteMapDataSource使用.SiteMap文件。
您可以实现自己的SiteMapProvider,这样您就可以在您的数据库中使用SiteMap层次结构并连接相同的组件,从而使事情变得更加动态。
以下是一个示例:http://weblogs.asp.net/scottgu/archive/2006/01/11/435108.aspx
HTH
答案 1 :(得分:1)
如果你想这样做,我肯定会推荐选项2,因为它包含一个小于选项1的转换级别。如果你已经遍历菜单项和它们的hiearchies,你也可以建立菜单项和subitems直接 - 我没有看到绕过XML然后通过XSLT进入菜单结构的任何大的好处,真的。
马克
PS:如果站点地图结构和选项对您来说足够好(通常应该是这样),则选项3(SQL站点地图提供程序)听起来也是一个非常好的主意。我可能会首先尝试这个选项,然后从那里开始。
答案 2 :(得分:1)
我同意马克。然后,您可以将所有内容打包到服务器控件中以获得可重用性。将所有内容转换为XML然后使用XSLT以某种方式“转换”它似乎是我的开销。