首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SiteMap change SiteMapProvider?

SiteMap change SiteMapProvider?
EN

Stack Overflow用户
提问于 2011-01-26 02:49:24
回答 2查看 10.2K关注 0票数 3

我有一个从web.sitemap文件构建的自定义菜单导航,它的第一行应该是这样的:

代码语言:javascript
运行
复制
SiteMapNodeCollection topLevelNodes = SiteMap.RootNode.ChildNodes;

这是可行的-它从web.sitemap文件中获取所有顶级节点,并允许我查看每个SiteMapNode并执行某些操作。

但是,现在我希望能够创建多个web.sitemap文件,然后以编程方式确定要使用哪个web.sitemap文件,但我似乎找不到如何做到这一点。我假设我可以创建一个自定义SiteMapProvider来执行逻辑以确定要加载哪个web.sitemap文件,也可以创建多个提供程序,每个提供程序都将SiteMapFile属性设置为一个特定的*.sitemap文件,然后在访问SiteMap.RootNode之前以编程方式切换提供程序。

我认为有一个自定义的提供者,然后覆盖它查找实际物理站点地图文件位置的部分可能会更容易,但我不知道如何做到这一点

我用谷歌搜索了很多,但大多数答案似乎都是关于标准的sitemappath控件等等,以及如何设置SiteMapDataSource,我认为这与我的方法无关。

EN

回答 2

Stack Overflow用户

发布于 2011-01-26 03:57:35

首先,您需要指定web.config中的所有站点地图文件:

代码语言:javascript
运行
复制
<siteMap defaultProvider="FNDSiteMap" enabled="true">
  <providers>
    <add name="FNDSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="FND.sitemap" securityTrimmingEnabled="true"/>
    <add name="STASiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="STA.sitemap" securityTrimmingEnabled="true"/>
    <add name="TASiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="TA.sitemap" securityTrimmingEnabled="true"/>
  </providers>
</siteMap>

然后,在您的代码隐藏中,您可以将您的SiteMapDataSource (绑定到您的菜单)动态地分配给您在web.config中指定的某个提供者:

.aspx

代码语言:javascript
运行
复制
<asp:Menu ID="MenuLevel1" runat="server" Orientation="Horizontal" DataSourceID="SiteMapLevel1"
    MaximumDynamicDisplayLevels="0" IncludeStyleBlock="false">
</asp:Menu>                
<asp:SiteMapDataSource ID="SiteMapLevel1" runat="server" /> 

.cs

代码语言:javascript
运行
复制
SiteMapLevel1.SiteMapProvider = "TASiteMap";
票数 3
EN

Stack Overflow用户

发布于 2011-01-27 18:15:23

保利的评论是对我特殊要求的回答:

“你不应该切换/改变任何东西……相反,你需要像这样一直访问RootNode,SiteMap.Providers[someProvider].RootNode,然后someProvider应该在运行时被解析。”

我没有意识到这是可能的,但对我来说是正确的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4797572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档