ListBox をいくつかのデータにバインドしました。
問題は、myTableAdapter.Fill(..) メソッドを呼び出すと、SelectedValue がリストの最初の項目 ID に変更されることです。VS の「選択された値」はどこにもバインドされていませんが (画像を参照)。 代替テキスト http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
この動作を防ぐにはどうすればよいですか?
助けてくれてありがとう。
ListBox をいくつかのデータにバインドしました。
問題は、myTableAdapter.Fill(..) メソッドを呼び出すと、SelectedValue がリストの最初の項目 ID に変更されることです。VS の「選択された値」はどこにもバインドされていませんが (画像を参照)。 代替テキスト http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
この動作を防ぐにはどうすればよいですか?
助けてくれてありがとう。
各リクエストを拘束するべきではありません。何らかの理由で各リクエストにバインドする必要がある場合は、手動で ListBox に SelectedIndex を設定する必要があります。これは、Fill メソッドが最初にリストをクリアしてから、フェッチしたデータの新しいリスト項目を作成するためです。
私が考えることができる最も簡単な方法は、テーブル アダプターの塗りつぶしコードを次のように変更することです。
string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;
アイテムがもう存在しない場合は問題が発生するため、それを確認する条件を追加することをお勧めします。