如何在没有多个根节点的情况下使用多个站点地图文件

时间:2008-09-19 08:13:24

标签: asp.net sitemap menu

我正在使用ASP.NET菜单控件。我希望菜单看起来像这样,其中链接1到10在一个站点地图文件中,链接11到20在另一个站点地图文件中。

root
--link 1
(...)
--link 10
--link 11
(...)
--link 20

但是,站点地图文件必须有一个我似乎无法抑制的根。

有什么想法吗?

-Edoode

2 个答案:

答案 0 :(得分:2)

您可以通过执行以下操作来抑制根节点:

SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();

我使用此方法隐藏树视图的根节点。

答案 1 :(得分:1)

是否有任何理由不能添加虚拟根节点,然后继承ASP.NET菜单控件以忽略虚拟“根”节点?

您应该能够告诉您的SiteMapProvider为菜单使用不同的站点地图。

我的另一个问题是拥有多个站点地图文件的目的是什么?我确信你有充分的理由,但知道发生了什么会让它更容易理解并提出更好的解决方案。

话虽这么说,我会想出一个自己开发的菜单系统。您可以在前端使用jQuery和superfish插件,并使用C#读取后端的站点地图文件以构建菜单结构。