【问题标题】:Is there a way to programmatically set the current node of a SiteMapPath control?有没有办法以编程方式设置 SiteMapPath 控件的当前节点?
【发布时间】:2009-03-25 23:26:00
【问题描述】:

我的网站有几个页面指向同一个子页面。我正在使用一个 xml 站点地图,它不允许我使用相同的 Url 复制 SiteMapNode。我的想法是给我的 SiteMapPath 控件一个父节点来填充自己,然后添加到当前页面的 SiteMapNode。

有没有其他人不得不做类似的事情?我看过这篇文章http://msdn.microsoft.com/en-us/library/ms178425.aspx,它描述了如何“以编程方式修改内存中的站点地图节点”,但它们将 SiteMapNode 包含在文件中,然后通过检查查询字符串来修改该节点。

我的节点永远不存在,或者如果它存在,我需要将它复制到正确的父节点,以便它可以呈现正确的路径。对于视觉:

Home
--My Page
----Page A
----Page B
----Page C
--My Other Page
----Page A
----Page D
--YAPage
----Page B
----Page C

我希望看到的一些示例:

Home > My Page > Page A
Home > My Other Page > Page A
Home > My Page > Page B
Home > YAPage > Page B

【问题讨论】:

    标签: asp.net-2.0 sitemap sitemappath asp.net-controls


    【解决方案1】:

    看起来这些可以解决问题:

    http://www.codeproject.com/KB/aspnet/ABetterSiteMapResolve.aspx http://netpl.blogspot.com/2008/04/sitemapresolve-and-dynamic-site-map.html

    对于动态站点地图: http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

    对于多个提供程序,您需要使用它来附加 SiteMapResolve 事件:(如果您的事件没有触发,很可能您没有设置正确的提供程序。)

    SiteMap.Providers[currentProvider].SiteMapResolve += new SiteMapResolveEventHandler(Provider_SiteMapResolve);

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多