質問: お世話になっております。 DropDownList1が"X"の場合、DropDownList2の項目が絞り込まれ、 同様に、DropDownList2が"Y"の場合、DropDownList1の項目が絞り込まれるような処理を行いたいです。 階層が同じ(親子関係ではない)場合はどのように処理をすればよろしいでしょうか。 車の「車種」「色」「メーカー」などの検索条件のように、 「車種」を選択した際、それに該当する「色」「メーカー」が絞り込まれる。 「色」を選択した際、それに該当する「車種」「メーカー」が絞り込まれる。 というイメージです。 DropDownListの項目はDBから取得しています。 1つのDropDownListに対し、1つのSqlDataSourceをそれぞれ作成しています。 SQL文 SELECT DISTINCT '車種' FROM hoge_tbl; ↑SqlDataSource1 SELECT DISTINCT '色' FROM hoge_tbl; ↑SqlDataSource2 SELECT DISTINCT 'メーカー' FROM hoge_tbl; ↑SqlDataSource3 hoge_tbl ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/70bf288fb49fc21a12725583568424d1.png) hoge_tblから項目を取得 ![](https://teratail.storage.googleapis.com/uploads/contributed_images/eb0be65edb319226e500465e08abd1ed.png) ↓ GridViewで、条件に一致したレコードが表示される。 説明下手かもしれませんが、ご教授願います。 【環境】 Windows7 ASP.NET C# SQL Server 2012
回答: 普通は、まず最初にメーカーを選んで、次に車種を選んで、最後に色を選ぶという操作になると思うのですが、それでよければ Ajax Control Toolkit の CascadingDropDown が目的に合うと思います。 以下のサイトにデモがありますので見てください。 CascadingDropDown Demonstration これが目的に合わないということでしたら、どこがどう合わないか書いてください。