トップ回答者
ドロップダウンリストの使い方について

質問
-
Visual Studio 2013 VB.Net でWebページの開発をしています。
ドロップダウンリストの使い方で以下のような使い方ができないか教えてください。
ドロップダウンリスト:AAAマスタのコードと名称を取得(リストには名称のみ表示)
BBBテーブルには登録時のコードと名称を保持しており、
BBBテーブルのコードにドロップダウンリスト上に合致するものがある場合、
ドロップダウンリストは、その位置を表示する。
↑ここまでは可能かと思います。
で、BBBテーブルのコードに合致するものがない場合、
BBBテーブルの名称だけ、ドロップダウンリストに"表示だけ"させて、(前に登録したデータが何かを見せたい)
選択をクリックした時点で、ドロップダウンリストからは、前に登録したデータはなくなって、
今のAAAマスタのコードと名称のみが表示される。
上記のようなことを実現したいのですが、可能でしょうか。
- 移動 佐伯玲 2015年10月22日 1:51 Visual Basic から ASP.NET へ
回答
-
おそらく以下のようなことですよね?
GridView DropDown SelectedValueで該当する値がない場合
http://iceberg.ko-me.com/asp.net%E3%80%80gridview/gridview%20dropdown%20selectedvalue%E3%81%A7%E8%A9%B2%E5%BD%93%E3%81%99%E3%82%8B%E5%80%A4%E3%81%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88上記のページでは該当する値が無い場合は何もしていませんが、無い場合に代わりの値を表示するには、その値を以下のようにして追加するしかないでしょう。
[ASP.NET] バインドされたDROPDOWNLISTに値がないときのエラー回避
http://tomovertex.at.webry.info/201110/article_1.html細かい状況がわかりませんが、上記の2つのページが考え方の参考になると思いますので、それらを元に考えてみて下さい。
あと、これは私の思い付きですが、データーベースを使用されているようですので、例えば以下のようなSQLに変えるだけでうまく行くかもしれません。
select コード, 名称 from AAAマスタ
union
select コード, 名称 from BBBテーブル where コード = 【今、表示しようとしているデータのコード】(追記)
既に指摘があるように、今回のご質問はASP.NETのカテゴリが適切に思えます。
フォーラム移動の件に関しては、私の方から依頼をしておきますので、後で移動されると思います。
よろしくお願いいたします。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2015年10月22日 1:35 追記
- 回答の候補に設定 星 睦美 2015年10月23日 4:23
- 回答としてマーク 星 睦美 2015年10月28日 7:32
すべての返信
-
おそらく以下のようなことですよね?
GridView DropDown SelectedValueで該当する値がない場合
http://iceberg.ko-me.com/asp.net%E3%80%80gridview/gridview%20dropdown%20selectedvalue%E3%81%A7%E8%A9%B2%E5%BD%93%E3%81%99%E3%82%8B%E5%80%A4%E3%81%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88上記のページでは該当する値が無い場合は何もしていませんが、無い場合に代わりの値を表示するには、その値を以下のようにして追加するしかないでしょう。
[ASP.NET] バインドされたDROPDOWNLISTに値がないときのエラー回避
http://tomovertex.at.webry.info/201110/article_1.html細かい状況がわかりませんが、上記の2つのページが考え方の参考になると思いますので、それらを元に考えてみて下さい。
あと、これは私の思い付きですが、データーベースを使用されているようですので、例えば以下のようなSQLに変えるだけでうまく行くかもしれません。
select コード, 名称 from AAAマスタ
union
select コード, 名称 from BBBテーブル where コード = 【今、表示しようとしているデータのコード】(追記)
既に指摘があるように、今回のご質問はASP.NETのカテゴリが適切に思えます。
フォーラム移動の件に関しては、私の方から依頼をしておきますので、後で移動されると思います。
よろしくお願いいたします。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2015年10月22日 1:35 追記
- 回答の候補に設定 星 睦美 2015年10月23日 4:23
- 回答としてマーク 星 睦美 2015年10月28日 7:32
-
質問者さんのやりたいことは分かりませんが、trapemiya さんのレスの推測が当たっているという前提で一言コメントさせてください。
trapemiya さんが紹介されている前者の記事で、「普通のテーブル」の CD には「マスタ」の CD に対する FK 制約をかけるのが普通ではないでしょうか?(「普通のテーブル」の CD に好き勝手な値を入れられるような整合性のない DB を作ったりはしないのでは?・・・という意味です)
そうであれば、「SelectedValueで該当する値がない」ということは「普通のテーブル」の CD が NULL 不可になっていればあり得ませんし、NULL 許可になっている場合は NULL に限られるはずです。
NULL だけの対応であれば、以下の記事の「テンプレート フィールドの Null の変換」のセクションのようにすればよさそうです。(その記事で使用している Northwind の Employees テーブルの ReportsTo フィールドには FK 制約がかかっています)
データ ソース コントロールを使用した、データベースの Null 値の処理
https://msdn.microsoft.com/ja-jp/library/ms366709(v=vs.100).aspx質問者さんの事情は分かりませんが、「SelectedValueで該当する値がない」ということがないように、DB の整合性を保つことを第一に考えるというアプローチになるのではないでしょうか?
既存の DB で今さら何ともならないということなら Web アプリの方で何とかするほかないかもしれませんが。(そういうことを続けているとそのうち破綻しそうな気もしますが)
- 編集済み SurferOnWww 2015年10月25日 6:16 脱字追加