如何在没有多个根节点的情况下使用多个站点地图文件
时间:2020-03-06 14:25:08 来源:igfitidea点击:
我正在使用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();
我使用此方法隐藏树视图的根节点。