DB に、キーと値のペアへの参照を保持するテーブルがいくつかあります。
電話番号の種類:
- 1 - ホーム
- 2 - 仕事
- 3 - モバイル
- 4 - ファックス
等
そのため、型のテーブルがあり、それらが他のテーブルで使用されると、int 値が外部キーとして参照されます。それらを引き出しているときはkeyvaluepair<int, string>
、それらを使用しているクラスのアイテムとして保管しています。
それらのリストを取得する必要があるとき、同じデータを取得するために 2 つの異なるタイプのデータ型を使用するのではなく、それらの List<> を作成するだけでよいと考えました。
edittemplate ビットを使用しているときに、グリッドビュー内にドロップダウン リストを設定する必要があるときに、問題が発生しました。データソースを使用してこれを引き出すと、値として int を、表示するテキストとして Home を配置するのではなく、テキストに [1 Home] を書き込みます。
私は本当に複数の部分からなる質問があると思います。
1:
私は愚かですか?これは、データを取り出して保存する (キーと値のペアの部分) 本当に悪い方法ですか? すべてをデータテーブルに保存する必要がありますか?すべてをデータテーブルに入れるのは好きではありませんでした。私は自分の DAL を自分の BLL に取り込んでおり、List<>
すべてのテーブルではなく、オブジェクトまたはオブジェクトのオブジェクトとしてすべてをカプセル化しようとしました。ほとんどの場合、これでうまくいきました。
二:
ドロップダウン リストの objectdatasource にバインドするためにデータ テーブルではなく何らかのオブジェクトを使用していた場合、リストの最初の項目を選択するだけでなく、現在選択されている値を設定するにはどうすればよいですか?
編集
以下で指摘したように、私は馬鹿で、DataValueField と DataKeyField を設定する必要がありました。
ドロップダウンリストをバインドするには、次のことを行う必要がありました。
SelectedValue='<%# DataBinder.Eval(Container, "DataItem.PhoneType.Key") %>'
すぐにそれが見えなかったのは、私のインテリセンスに表示されていなかったからですが、手動で入力するとうまくいきました。