2012-08-17 69 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

相关问题