有没有办法以编程方式设置 SiteMapPath 控件的当前节点?

Posted

技术标签:

【中文标题】有没有办法以编程方式设置 SiteMapPath 控件的当前节点?【英文标题】:Is there a way to programmatically set the current node of a SiteMapPath control? 【发布时间】: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

【问题讨论】:

【参考方案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);

【讨论】:

以上是关于有没有办法以编程方式设置 SiteMapPath 控件的当前节点?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?

有没有办法在Swift中以编程方式设置NSCollectionView?

Spotify - 有没有办法以编程方式将曲目星标设置为真? [关闭]

有没有办法以编程方式启用 POP

有没有办法以编程方式控制 DirectShow VSFilter?

有没有办法以编程方式配置 MDB?