SiteMap更改SiteMapProvider?
我有一个从web.sitemap文件构建的自定义菜单导航,第一行是这样的:
SiteMapNodeCollection topLevelNodes = SiteMap.RootNode.ChildNodes;
这有效 - 它从web.sitemap文件中获取所有顶级节点,并允许我查看每个SiteMapNode并执行操作。
但是,现在我希望能够创建多个web.sitemap文件,然后以编程方式确定要使用的web.sitemap文件,但我似乎无法找到如何执行此操作。我假设我可以创建一个自定义SiteMapProvider来执行逻辑来确定要加载哪个web.sitemap文件,或者我有多个提供程序,每个提供程序都将SiteMapFile属性设置为特定的* .sitemap文件,然后切换在我访问SiteMap.RootNode之前以编程方式提供程序。
我认为拥有一个自定义提供程序可能更容易,然后覆盖它查找实际物理站点地图文件位置的部分,但我不清楚我将如何执行此操作
我已经google了很多,但大多数答案似乎是关于标准的sitemappath控件等等,以及如何设置SiteMapDataSource,我认为这与我的方法无关。
没有找到相关结果
已邀请:
2 个回复
版萍层分
然后在您的代码隐藏中,您可以动态地将您的SiteMapDataSource(绑定到您的菜单)分配给您在web.config中指定的提供程序之一: 的.aspx
的.cs
师埠女
和someProvider应该 然后在运行时解决。“ 我没有意识到这是可能的,但对我来说是正确的解决方案。