我自定义了网站使用两个sitemap,并在web·config中设置好了,在母版页中通过判断调用不同的sitemap,现在我想在调用母版页的aspx页面中调用sitemap.currentnode获取当前节点,但是该方法只能实现查找默认的,并且位干根目录下的web.sitemap,我该如何去实现查找自定义导航数据中的当前节点  

解决方案 »

  1.   

    在web.config中
    <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
      

  2.   

    SiteMap.CurrentNodehttp://msdn.microsoft.com/en-us/library/system.web.sitemap.currentnode.aspx
      

  3.   

    但是该方法只能查找默认为根目录下的 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,能具体的给我讲讲不
    我昨天找了一天,实在不知道如何处理的 ,实在不行,我就一个个的手动添加链接
      

  4.   

    trySiteMap.Provider=SiteMapDataSource.Provider
      

  5.   

    不行啊 
    不能这么赋值啊
    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();
            }
        }
    }
      

  6.   

    SiteMapDataSource 是你的 SiteMapDataSource 控件的ID你之前不是已经可以调用了么
      

  7.   

    这个地方我没有问题 ,但是我想在 使用这个母版页的some.aspx页面中的在content将
    中将当前的导航的节点显示出来,不要什么sitemapPath的控件,这个也不行。我试过。我现在就想怎么通过程序,自己去选择