實現所需輸出的最佳方法是忽略SitePath控件,而是使用SiteMap的SiteMapNode集合。服務器將web.sitemap解析爲SiteMapNodes的集合,並通過查找與當前頁面的URL匹配的節點來連接SiteMap.CurrentNode。每個SiteMapNode都有一個ParentNode屬性。 Here is the reference page on MSDN。
所以,你需要做的是檢查CurrentNode有父,如果它您添加ParentNode的標題爲CurrentNode的標題,並保持下去,直到你到達根節點(你的根替換爲您的公司名稱節點的標題)。
下面是一個快速解決方案;如果你使用的話,它可以進入MasterPage。我不確定你的語言,但這應該很容易在VB.Net中重寫。我給了它一個簡單的測試,它似乎工作。 您可以自定義分隔頁面標題的字符。
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = SiteMapTitle(SiteMap.CurrentNode, "", " - ");
}
private string GetNodeTitle(SiteMapNode oNode)
{
if (oNode == SiteMap.RootNode)
return "Company Name";
else
return oNode.Title;
}
private string SiteMapTitle(SiteMapNode oNode, string szTitle, string szItemSeparator)
{
if (szTitle != string.Empty)
szTitle = szTitle + szItemSeparator + GetNodeTitle(oNode);
else
szTitle = GetNodeTitle(oNode);
if (oNode.ParentNode != null)
szTitle = SiteMapTitle(oNode.ParentNode, szTitle, szItemSeparator);
return szTitle;
}
希望幫助...
難道我的回答幫助解決問題了嗎? – PhillFox 2011-02-25 15:46:57