SharePoint のリストでカスケード分類を実現

表題通り SharePoint のリストでカスケードを実現する方法です。

カスケードとは上位の選択により下位が絞り込まれるような構造の情報です。
たとえば「国→県→町」のように。
日本語だと「階段状」とか「入れ子」とか言います。

データ入力にあたりそこそこ重要機能なのですが、SharePoint にはこれがありません。
Notes からのを移行を推進するにあたり、この点がいつも障害でした。
製品的には、階層はリストでなくライブラリで表現、なんだろうと思います。

もちろん、これを実現するアドオン製品やオープンソースツールはあるのですが。
私としては、なんとか、標準機能の延長上で実現したかったのです。

まずは実物?を見て頂きましょう。

新規アイテム作成。

親を選択します。

親で「犬」を選択しているため、犬種が子の選択肢になります。

親を「猫」に変更すると。

猫の種類が子の選択肢になります。

当然、きちんと値として保存されます。

編集モードでも既存値を保った上で機能します。

仕組みとしては、別リストにマスタを定義して、この情報を SharePoint 標準のWebサービスである list.asmx の GetListItem メソッドで取得しています。
データ取得と、ページの書換は、Javascript をリストの NewForm.aspx と EditForm.aspx に埋め込んで行っています。

まあ、門外漢の私がつくるモノですから(苦笑)大したことはしていません。
まず、サンプルソースをこちらにおいておきます。
画像のせいで既に長くなりましたので、説明は次のエントリで。

SharePointMANIACS_cascadingDropDown.txt

続きます

追記:
このエントリをアップしてから、RSSをチェックしていたら、SharePointな日々の柚木さんが先日、ほぼ同じアプローチを紹介されていました!
カスケード分類作ってみた!
誓って、見てません(笑)
まあ皆さん悩まれるポイントは同じということでしょうか…。

SharePoint のリストでカスケード分類っぽいことを実現してみる
Infopath2003 を利用して、階層型(カスケード)分類選択を実現する
SharePointでダイナミックな分類選択を可能にする Query Based Lookup Field


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9