但是该方法只能查找默认为根目录下的 web.sitemap ,无法查找自定义的sitemap , If you implement your own SiteMapProvider object, you might create your own mechanism to find and retrieve the CurrentNode. However, if you extend the StaticSiteMapProvider class and use a URL-based scheme to identify pages, you can override the FindSiteMapNode method. 我不知道如何去重写这个FindSiteMapNode,能具体的给我讲讲不 我昨天找了一天,实在不知道如何处理的 ,实在不行,我就一个个的手动添加链接
<siteMap>
<providers>
<add name="one" type="System.Web.XmlSiteMapProvider" siteMapFile="./WebSiteMap/one.sitemap" />
<add name="two" type="System.Web.XmlSiteMapProvider" siteMapFile="./WebSiteMap/two.sitemap" />
</providers>
</siteMap>在母版页中 使用asp:SiteMapDataSource加asp:Repeater控件NavigateUrl='<%# Eval("Url") %>'
这样调用的
如果这样比较麻烦的话 我可以使用treeview
If you implement your own SiteMapProvider object, you might create your own mechanism to find and retrieve the CurrentNode. However, if you extend the StaticSiteMapProvider class and use a URL-based scheme to identify pages, you can override the FindSiteMapNode method.
我不知道如何去重写这个FindSiteMapNode,能具体的给我讲讲不
我昨天找了一天,实在不知道如何处理的 ,实在不行,我就一个个的手动添加链接
不能这么赋值啊
aspx页面
<asp:Repeater ID="TutorialList" runat="server" EnableViewState="False">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("Url") %>'
Text='<%# Eval("Title") %>'></asp:HyperLink>
- <%# Eval("Description") %></li>
</ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>
</asp:Content>C#代码
public partial class WebAdmin_SysInquiry_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SiteMap.Provider =SiteMapDataSource.SiteMapProvider;
if (SiteMap.CurrentNode != null)
{
TutorialList.DataSource = SiteMap.CurrentNode.ChildNodes;
TutorialList.DataBind();
}
}
}
中将当前的导航的节点显示出来,不要什么sitemapPath的控件,这个也不行。我试过。我现在就想怎么通过程序,自己去选择