我正在使用 ASP.NET 菜单控件。我希望菜单看起来像这样,其中链接 1 到 10 在一个站点地图文件中,而链接 11 到 20 在另一个站点地图文件中。
root
--link 1
(...)
--link 10
--link 11
(...)
--link 20
但是,站点地图文件必须有一个我似乎无法抑制的根。
有什么想法吗?
-Edoode
您可以通过执行以下操作来抑制根节点:
SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();
我使用这种方法来隐藏树视图的根节点。
是否有任何理由不能添加虚拟根节点,然后将 ASP.NET 菜单控件子类化以忽略虚拟“根”节点?
您应该能够告诉您的 SiteMapProvider 为菜单使用不同的站点地图。
我的另一个问题是拥有多个站点地图文件的目的是什么?我相信您对此有充分的理由,但是了解正在发生的事情会更容易理解并提出更好的解决方案。
话虽如此,我会想出一个本土的菜单系统。您可以在前端使用 jQuery 和 superfish 插件,并在后端使用 C# 读取站点地图文件以构建菜单结构。