在做一个站 后台MasterPage用了Web.sitemap导航 可以正常显示
代码如下:
<asp:SiteMapPath ID="SiteMapPath1" runat="server" PathSeparator=">>">
<PathSeparatorStyle Font-Bold="True" ForeColor="#507CD1" />
<CurrentNodeStyle ForeColor="#333333" />
<NodeStyle Font-Bold="True" ForeColor="#284E98" />
<RootNodeStyle Font-Bold="True" ForeColor="#507CD1" />
</asp:SiteMapPath>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeUrl="~/Web.sitemap" />然后在前台也用了一个Site.sitemap在前台导航 代码就把 <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeUrl="~/Site.sitemap" />改了下
请教下高手 为什么前台的导航不显示呢?也不报错
代码如下:
<asp:SiteMapPath ID="SiteMapPath1" runat="server" PathSeparator=">>">
<PathSeparatorStyle Font-Bold="True" ForeColor="#507CD1" />
<CurrentNodeStyle ForeColor="#333333" />
<NodeStyle Font-Bold="True" ForeColor="#284E98" />
<RootNodeStyle Font-Bold="True" ForeColor="#507CD1" />
</asp:SiteMapPath>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeUrl="~/Web.sitemap" />然后在前台也用了一个Site.sitemap在前台导航 代码就把 <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeUrl="~/Site.sitemap" />改了下
请教下高手 为什么前台的导航不显示呢?也不报错
解决方案 »
- 输入1234567890.能发声
- vcastr22.swf播放器问题,感兴趣的进来看看
- 为什么我的ASPNET中很多控件都没有
- 模板列中的,Edittemplet 中有一个dorpdownlist控件要和数据库绑定,在在什么事件过程上编写
- 怎么控制上传文件的大小,比如说我用FILE控件上传,如果文件大于一M,就给出出错提示,这要怎么做,急!
- DataGrid模版列响应DataGrid1_ItemCommand,但DataGrid1.SelectedIndex总为-1
- 说能帮帮我指点指点 关于表单插入的问题
- fineui添加的按钮实现关闭当前窗口遇到问题
- 各位高手,小弟对下面不知道什么意思,谁帮我看一下! 谢谢!
- 怎么编写.net 环境下的ocx组件?
- 用微软的WebDeployment Project 编译出的网页为什么有的是乱码?该怎么样解决?
- 关于SiteMapPath的问题
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>
因为我把Site.sitemap里的粘到Web.sitemap里可以正常显示,同时我发现删除<asp:SiteMapDataSource>都可以 看来<asp:SiteMapDataSource>没有用啊?
还望高手指点
SiteMap默认情况下是一个固定名称的XML文件,
如果你有多个(两个或以上),则需要手动在web.config里做配置,并在适当的地方(想加载站点地图的地方)用this.smpDataSource.Provider = System.Web.SiteMap.Providers["ComXmlSiteMapProvider"];这样的语句来指定,这样你就可以有多个,甚至可以为不同权限的用户指定不同的站点导航了。
下面是在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;
}
}
}
我的xml文件加了数据源还是不显示呢