2012-08-17 72 views
0

在我的Web.sitemap中我有以下幾點:如何從MasterPage動態設置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沒有數據路徑性能。 – 2012-08-18 14:18:07

+0

更改爲MenuEventArgs更改簽名,以便它不再找到委託:以下是錯誤:CS0123:沒有爲'SiteMapPath1_ItemDataBound'重載匹配委託'System.Web.UI.WebControls.SiteMapNodeItemEventHandler' – 2012-08-19 03:38:19

+0

您是否使用菜單控件? – maxisam 2012-08-19 07:02:46

相關問題