SharePoint のコンテンツメニューを WebMenu に置き換えてみる

SharePoint で開発をするのに欠かせないツールの一つとして Office SharePoint Designer (SPD)があります。マスタページやコンテンツページのレイアウト等をカスタマイズ編集することができる便利なツールなのです。

画面自体は Expression Web と似ているのですが、SharePoint に特化した機能が搭載され、Visual Studio のように Web アプリケーションを一から作成する、というのではなく、SharePoint のサイトを編集するということが目的のツールになっています。オフィシャルにはサードパーティのコントロールをツールボックスにインストールするということはサポートされていないようですが、web.config に SafeControl として登録しておけば自然と出てくるようです。

NetAdvantage for ASP.NET を SharePoint で使ってみたら・・・?というわけで今回は SPD で NetAdvantage for ASP.NET コントロールを使用してみました。

材料:

ミッション:

  • サイトコンテンツの QuickLaunchMenu を WebMenu に置き換える

default_quicklaunchbar

1. マスターページへの WebMenu の配置

まず SPD で既存の標準マスターページのコピーを作成し、デザインビューから QuickLaunchMenu を選択します。QuickLaunchMenu は SiteMapDataSource を使用する ASPMenu コントロールですが、WebMenu も SiteMapDataSource を使えるので、QuickLaunchMenu を WebMenu に置き換えて、同じ SiteMapDataSource (id: QuickLaunchSiteMap) を使うように指定(DataSourceID プロパティを設定)します。

<asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="QuickLaunchSiteMap" StartingNodeUrl="sid:1025" runat="server" />

置き換える WebMenu のタグブロックは、VSで生成されるものをそのままコピペしました。ここでは標準で用意されているスタイルの Trendy  を使用して、画面左のコンソールにうまくおさまるよう表示方向(WebMenuTarget プロパティ)を Vertical に設定しています。また、サイトのテーマに沿ったスタイルを使用するのも手でしょう。

2. <% Register で始まる登録タグの追加

WebMenu の ignav タグが認識されるよう、VS の Web アプリケーション作成時にページに追加される <% Register… タグを マスターページに追加します。

<%@ Register tagprefix="ignav" namespace="Infragistics.WebUI.UltraWebNavigator" assembly="Infragistics35.WebUI.UltraWebNavigator.v9.1, Version=9.1.20091.2003, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" %>

これでマスターページの作業は完了です。

3. WebMenu を SareControl として登録

SharePoint で使用されるアセンブリは SafeControl として web.config ファイルに登録されなければいけません。WebMenu のアセンブリは Infragistics35.WebUI.UltraWebNavigator.v9.1 なので、最後に web.config の SafeControls 項目に追加します。

<SafeControl Assembly="Infragistics35.WebUI.UltraWebNavigator.v9.1, Version=9.1.20091.2003, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.WebUI.UltraWebNavigator" TypeName="*" Safe="True"/>

SharePoint サイトで NetAdvantage をよく使うのであれば全てのアセンブリを web.config にあらかじめ登録しておくと便利です。

webmenu 

今回はサイトコンテンツのメニューを Webmenu で置き換えてみました。上記の3ステップでサイトのナビゲーションを簡単にすることが可能になりました。今回はマスターページに変更を加えましたが、コンテンツページや Web パーツとしても NetAdvantage を使用することが可能です。

今回のように既存のプリセットやスタイルを使用される場合は SharePoint サイト上から WebMenu がそれらを参照できる場所(サイトのルートなど)にig_common や ig_res 等に含まれるスタイル関連のファイルを配置するのをお忘れなく。

の全ての投稿を閲覧する

Powered by Community Server (Commercial Edition), by Telligent Systems