2009-07-08 15 views
1

SiteMapNodesのtitleプロパティをカスタマイズする必要があります。Sharepoint:カスタムリストのカスタムSiteMapProvider

私はWSSを使用しており、カスタムドキュメントライブラリを作成しています。このライブラリをナビゲートする際に、リスト名の上に表示されるブレッドクラム内のノードの名前を変更したいとします。

は、これまでのところ、私が持っている:

  • が System.Web.SiteMapProviderから継承したクラスを作成し、
  • は、web.configファイルに私のクラスを追加し、
  • は、SharePoint default.masterページを変更しましたsitemappath( PlaceHolderTitleBreadcrumb)から を私の新しいサイトマッププロバイダーに指します。

次に、CurrentNodeプロパティを上書きして、CurrentNode.titleを目的の名前で編集しました。

私の問題は、以前のすべてのノード(親ノード)が元の名前に戻ってしまうことです。ブレッドクラムを編集してナビゲートしたすべてのノードが新しいタイトルを保持するようにするにはどうすればよいですか?

アドバイスや指示があれば幸いです。

答えて

2

これまでのやり方は、新しいSiteMapProviderを作成するのではなく、シールされたSharePoint AspMenuコントロールをMossMenu(AspMenuと同じですが、SharePointチームがオープンソース)で置き換えます。私は必要な振る舞いでOnMenuItemDataBoundをオーバーライドします。

SiteMapProviderを使用する必要がある場合は、Reflectorまたは新しい.NET Framework debugging supportを試してみましたか? SiteMapProviderコードのどこかに、オーバーライドされた変更がオーバーライドされている必要があります。 :-)

+0

Hey Alex、 AspMenuのオーバーライドに関する提案はうまくいきました。マスターページでSiteMapPathコントロールを使用して、(AspMenuコントロールではなく)パンくずリストをレンダリングします。これは(AspMenuのように)幸いなことに密封されていないため、オーバーロードしてからCreateControlHierarchyメソッドをオーバーライドします。 私はカスタムのSiteMapProviderを作成して、現在のノード(SiteMapPathによって処理されない)の表示を生成する必要がありました。 反射材は素晴らしいツールです。 迅速な対応をありがとうございます。 – Arnhem

関連する問題