SharePoint Designer Team Blog からの Tip です。このブログにはSharePoint Designer に関する Tips が数多く掲載されています。研修でもこのブログを参考にした内容を扱っているのですが、今回は研修でも取り上げなかった Tip です。おそらく日本語での解説はなかったように思いますので、参考までにご紹介します。
SharePoint Designer 2007 (SPD) を使用したカスタマイズでは「データビュー」をよく用います。データビューを挿入することで、ノンコーディングで手軽に任意のデータベースや SharePoint リストの情報を表示できるようになります。今回紹介する Tips もデータビューを使用した例です。
2つのカスタム リストの情報を使用します。一方のリストのデータをデータビューで表示させます。このとき同時に ASP.NET のドロップダウンリスト コントロールを配置します。このコントロールにもう一方のリストデータをひもづけて選択肢として表示されるようにしデータビューをフィルタできるように設定します。
[図: ドロップダウンリストによるフィルタ]
リストの作成
- 2つのリストを作成する。一つは"製品カテゴリ"、もうひとつは"製品リスト"という名前にする。製品カテゴリには、製品カテゴリ列を用意しておく。また製品リストには"製品名"列と"製品カテゴリ"列の2つを用意する。
- 2つのリストにテスト用に何件かデータを追加しておく。
カスタムページ (コンテンツ ページ)の作成
- SharePoint Designer 2007 を起動する。
- [ファイル]メニューから[サイトを開く]をクリックする。
- "サイト名" ボックスにカスタム ページを作成したいサイトの URL を入力し、[開く]をクリックする。
- [ファイル]メニューから[新規作成]-[マスタページから作成]をクリックする。
- マスタページの選択ウィンドウで[OK]をクリックする。
- [ファイル]メニューから[名前を付けて保存]をクリックし、任意の名前でドキュメントライブラリなどの任意の場所に保存しておく。
コントロールとデータビューの追加
- [表示]メニュー-[ページ]-[デザイン]をクリックし、デザインビューにしておく。
- PlaceHolderMain タブを選択したら領域の右側に表示される矢印(>) をクリックし、"カスタム コンテンツの作成" をクリックする。
- [作業ウィンドウ]メニューから[データソースライブラリ]をクリックする。
- PlaceHolderMain の部分を選択したまま、[データソース ライブラリ]の"製品カテゴリ" をクリックし、[データソース コントロールの挿入] をクリックする。(SPDataSourceコントロールが追加される)
- [作業ウィンドウ]メニューから[ツールボックス]をクリックする。
- ツールボックス内からASP.NET コントロールの標準コントロールとして "DropDownList" コントロールを選択し、4.で追加した SPDataSourceコントロールの下にドラッグアンドドロップする。
- DropDownListコントロールの右側に表示される矢印(>)をクリックし、"データソースの選択" をクリックする。
- データソースの選択で "spdatasource1"を選択し、DropDownList で表示するデータフィールドと値のデータフィールドに"製品カテゴリ名"として使用している列名を指定し[OK]をクリックする。
- AutoPostBack を有効にする。
- 再び、[作業ウィンドウ]メニューから[データソースライブラリ]をクリックする。
- "製品リスト"をDropDownListの下にドラッグアンドドロップする。これによりデータビューが追加される。
- データビューの右端に表示される矢印(>)をクリックし、[列の編集]をクリックし表示したい列のみを表示するように調整し [OK] をクリックする。
- "フィルタ" をクリックする。
- フィルタ条件ウィンドウで、フィールド名に"製品カテゴリ" 、条件式として "次の値に等しい" 、値として "新しいパラメータを作成" をクリックする。
- データビューのパラメータ ウィンドウで Param1 のパラメータソースを "コントロール" に変更し、コントロールIDに"DropDownList1"と入力する。また、既定値に製品カテゴリとして入力してある項目のいずれかを入力しておく(例: 飲料)。[OK] をクリックする。
- 最後にページファイルを上書き保存する。
完成したらF12 キーを押下してプレビューし動作を確認します。