2009-07-08 143 views
1

我需要爲SiteMapNodes定製title屬性。Sharepoint:爲自定義列表定製SiteMapProvider

我使用WSS,並創建了一個自定義文檔庫。在瀏覽這個庫時,我想更改列表名稱上方顯示的麪包屑節點的名稱。

到目前爲止,我有:

  • 創建一個類從 System.Web.SiteMapProvider繼承,
  • 加入我的同班同學在web.config,
  • 改變了的SharePoint default.master頁sitemappath(在 PlaceHolderTitleBreadcrumb)將 指向我的新站點地圖提供者。

然後,我重寫了CurrentNode屬性以用所需的名稱編輯CurrentNode.title。

我的問題是以前所有的節點(父節點)恢復到原來的名稱。如何編輯麪包屑以便所有節點通過導航來保留其新標題?

任何意見或方向,將不勝感激。

回答

2

我之前完成此操作的方式不是通過創建新的SiteMapProvider,而是通過用MossMenu(與AspMenu相同,但由SharePoint團隊開放源代碼)替換密封的SharePoint AspMenu控件。然後我用我需要的行爲覆蓋OnMenuItemDataBound。

如果您需要/更喜歡使用SiteMapProvider,您是否嘗試過使用Reflector或新的.NET Framework debugging support來查看它的工作原理?必須在SiteMapProvider代碼中的某處,重寫的更改反過來也被覆蓋。 :-)

+0

嘿亞歷克斯, 您對重載AspMenu建議行之有效。除了母版頁使用SiteMapPath控件來渲染麪包屑(而不是AspMenu控件),幸運的是它沒有被密封(就像AspMenu),所以我重寫了它,然後覆蓋了CreateControlHierarchy方法。 我仍然必須創建一個自定義的SiteMapProvider來爲當前節點(不由SiteMapPath處理)生成顯示。 作爲一個旁邊的反射器是一個漂亮的工具。 感謝您的快速響應。 – Arnhem 2009-07-08 12:28:49