- ベストアンサー
ASP.NET GridView 一致した行のみ表示
ASP.NET .NETはver3.5を使用 GridViewにDBのテーブルを反映させることは出来るのですが、そこから特定の行を絞って表示させる方法がわかりません。 例えば名前という列が存在する場合、名前が「佐藤」の行のみ表示させる方法です。 どのようにすればよろしいでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DBから取得するときに絞り込みをかけたらどうでしょう?DBに何使ってるかわかりませんがWHEREでいけるんじゃないかな。 もしくはGridViewのRowDataBindとかのタイミングで、rowの中の特定のcellに佐藤があればvisible=ture、なければfalseみたいな感じでやるかですかね~。
その他の回答 (1)
- tochansa
- ベストアンサー率76% (23/30)
お望みの形かどうかはわからないですが、ちょっと考えてみました。 >デザイン側でGridViewにDBのテーブルをドラッグすることで、テーブルの内容がGridViewに表示される機能があるとおもいます。 とのことですので、GridViewとそれに対応するSqlDataSourceがデザイン上に配置されている状態なのだと考えます。 GridViewに表示される情報はSqlDataSourceの設定を元にしていますので、その設定内容を変更したらどうかなと思います。 以下に変更方法を記します。VS2005の画面を参考に作成しましたのでちょっと違いがあるかもしれません。 1.SqlDataSourceの右上のちいさな三角マークをクリックして、データソースの構成を選択します。 2.データソースの構成画面が開きます。データソースの選択は既に設定されているもので間違いないでしょうから「次へ」進みます。 3.Selectステートメントの構成という画面に遷移します。 「テーブルまたはビューから列を指定します」を選択し、表示対象のテーブル、列を選択。 そして、「WHERE」ボタンを押します。ここで絞り込みの設定ができます。 「列」を選択し「演算子」を「=」、「ソース」を「None」にして、パラメータの「値」を設定し、追加をします。 WHERE句が追加されたらOKを押します。 ※例えで設定内容を指定しちゃってます。必要に応じて変更して下さい。 「ソース」を「control」にしたりとか、あとで必要になりそうな気がします。 4.あとは「次へ」進んでいくだけです。 以上です。
お礼
実装できました。 私はVS2008でしたが基本同じやり方で実現できました。 SqlDataSourceをBindした結果をGridViewに出している、ということを正確に把握しておりませんでした。 動的にSQLを変える場合も同様にSqlDataSourceを変更すればよいみたいですね。 有難うございました。
お礼
回答ありがとうございます。 DBはSQLSERVERです。 >DBから取得するときに絞り込みをかけたらどうでしょう? 当初はそのつもりだったのですが、.NETの機能をよく理解しておりません。 デザイン側でGridViewにDBのテーブルをドラッグすることで、テーブルの内容がGridViewに表示される機能があるとおもいます。 既にテーブルのデータが全て表示されている状態ですので、そこからSQLを使用して再度入れ込むというのも回りくどいです。 この全て表示されたデータの中から絞り込む方法はないものかと考えております。(.NET3.5の機能として何かないものかと) あるいはドラッグせず全て自分でDB接続から絞り込み、GridViewに値挿入まで一からやるしかないのでしょうか。 >もしくはGridViewのRowDataBindとかのタイミングで~ RowDataBoundイベントなんてものがあるんですね。 しかしこれはBindタイミングですので、ご指摘の通り最初からSQLで絞り込んだ方が早そうですね。