2011-01-03 3 views
0

안녕하세요 어떤 해결책을 알려주시겠습니까? 나는 SiteMapPath 컨트롤을 대신 "사용자 계정"을 의미SiteMapPath : 체인의 마지막 링크의 제목과 링크를 변경하십시오.

Home > Accounts > User Account 

같은 기본 기능의 ~/UserAccount.aspx

나는 현재 사용자에 대한 정보를 보여주기 위해 마지막 노드를 덮어 싶습니다 예 :

Home > Accounts > John White 

"John White"는 ~/UserAccount.aspx? id = 111을 말합니다.

+0

어떤 공급자를 사용하고 있습니까? –

+0

표준 xmlSiteMapProvider. 아마 그것으로부터 상속 받아 확장 된 .sitemap 구문을 지원하는 몇 가지 기능을 추가해야 할 것입니다. – dominique

+0

링크를 따르십시오 : http://stackoverflow.com/questions/3757742/dynamically-built-sitemappath-in-asp-net –

답변

0

예, XmlSiteMapProvider에서 상속하고 BuildSiteMap 메서드를 재정의해야합니다. 여기서는 런타임에 원하는 노드를 조작 할 수 있습니다. 그러면 노드는 SiteMapPath 컨트롤에 나타납니다.

public class MySiteMapProvider : XmlSiteMapProvider 
{ 
    ... 

    public override SiteMapNode BuildSiteMap() 
    { 
    var node = base.BuildSiteMap(); 
    var userAccountsNode = this.FindUserAccountsNode(node); 

    userAccountsNode.ReadOnly = false; 
    userAccountsNode.Title = ...; 
    userAccountsNode.Url = ...; 
    userAccountsNode.ReadOnly = true; 

    return node; 
    } 
} 
관련 문제