2012-08-17 1 views
0

나는 다음과 같은 한 : 내 MasterPage에서MasterPage에서 SiteMap의 제목을 동적으로 설정하는 방법은 무엇입니까? 내 Web.sitemap에서

<siteMapNode url="~/Groups/ViewGroups.aspx" urlRoute="groups/{PostId}/{PostTitle}" /> 
</siteMapNode> 

내가 구현 한 시도하고 동적으로하지만 어떤 이유에 대한 마스터 페이지를 구현하는 각 페이지의 제목을 설정하는 이벤트를하여 ItemDataBound 제목이 설정되지 않습니다.

protected void SiteMapPath1_ItemDataBound(object sender, SiteMapNodeItemEventArgs e) 
{ 
    string CurrentNodeTitle = GetTitleFromDatabase(); 

    if (e.Item.ItemType == SiteMapNodeItemType.Current) { 
     e.Item.SiteMapNode.Title = CurrentNodeTitle; 
    } 
} 

또한이 작업을 ItemCreated 이벤트에서 시도했지만 여전히 작동하지 않았습니다.

Web.sitemap에 제목을 설정하면 완벽하게 작동하지만 을 사용하여 설정하면 e.Item.SiteMapNode.Title = CurrentNodeTitle; 제목이 설정됩니다.

답변

1

시도해보십시오.

private string currentKey = SiteMap.CurrentNode.Key 
protected void SiteMapPath1_ItemDataBound(object sender, MenuEventArgs e) 
{ 
    string CurrentNodeTitle = GetTitleFromDatabase(); 

    if (e.Item.DataPath == currentKey){ 
     e.Item.Text = CurrentNodeTitle; 
    } 
} 

편집 참고 :

는 MenuEventArgs에게 제안을

+0

감사해야하지만 e.Item는 데이터 경로 속성이 없습니다. –

+0

MenuEventArgs로 변경하면 더 이상 대리인을 찾을 수 없도록 서명이 변경됩니다. 다음은 오류입니다. CS: 'SiteMapPath1_ItemDataBound'에 대한 오버로드가 대리자 'System.Web.UI.WebControls.SiteMapNodeItemEventHandler'와 일치하지 않습니다. –

+0

메뉴 컨트롤을 사용합니까? – maxisam

관련 문제