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