单个sitemappath使用多个sitemap范例

     当用到多个站点地图时,要动态指定,可在MasterPage的PageLoad事件中指定,如下:
this.smpDataSource.Provider = System.Web.SiteMap.Providers["ComXmlSiteMapProvider"];

当然,你得在web.config中加入站点地图的相关内容,如:
<siteMap defaultProvider="PrisonXmlSiteMapProvider" enabled="true">
<providers>
<add name="PrisonXmlSiteMapProvider"
description="SiteMap provider that reads in .sitemap files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="PrisonWeb.sitemap" />
<add name="ComXmlSiteMapProvider"
description="SiteMap provider that reads in .sitemap files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="ComWeb.sitemap" />
</providers>
</siteMap>
    上面的例子用到两个站点地图:PrisonWeb.sitemap和ComWeb.sitemap,在web.config里的配置方式上面例子已经贴出来了,你复制过去改一下站点地图文件名为你实际的文件名就行了.
下面是在MasterPage的PageLoad事件中指定用那一个站点地图的例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Session["PrisonCode"].ToString().ToUpper() == "PNOTIN")
{
//超级用户,显示全部可用菜单项
this.smpDataSource.Provider = System.Web.SiteMap.Providers["ComXmlSiteMapProvider"];
}
else
{
//非超级管理,仅显示XX可见的菜单项
this.smpDataSource.Provider = System.Web.SiteMap.Provider;
}
}
}

你可能感兴趣的:(Path)