だから、私はASPドロップダウンリストを持っています(これは.net2.0です)。私はそれをデータと結びつけています。基本的に、ページが読み込まれ、ポストバックではない場合、レコードデータをフェッチし、すべてのドロップダウンをバインドして、適切な値に設定します(厳密に言えば、DBからの基本的なデータセットでページを初期化し、ドロップダウンをバインドします) DBから、DBから実際のレコードデータをフェッチし、この時点でドローンダウンを適切な設定に設定します)。私がやりたいのは、リストオプションを選択的にスタイル設定することです。したがって、データベースは3つの項目を返します。ID、テキスト、およびレコードが「アクティブ」であるかどうかを示すフラグです(適切なスタイルを設定します)。それはとても簡単で、私はそれをやりました。
私の問題は、フォームの送信が停止されたときに何が起こるかです。Pageクラスを少し拡張し、AddError()メソッドを作成しました。このメソッドは、失敗したビジネスルールチェックからのエラーのリストを作成し、それらをValidationSummaryに表示します。送信ボタンのクリックイベントでは、次のように機能します。
CheckBizRules();
if(Page.IsValid)
{
SaveData();
}
いずれかのビジネスルールチェックが失敗した場合、ページは無効になります。問題は、ページが再レンダリングされると(ビューセートが有効になっているが、データがリバウンドされない)、私の美しい条件付きスタイリングが悲しいことになくなって、足りない靴下の土地に住むようになることです。保存する必要があります。
ここで別のDB呼び出しを回避したいと思っていました(たとえば、リストのスタイルを変更する目的で、ページが有効でない場合にDBからリストデータを再度取得するなど)。しかし、それが私の行動方針であるならば、それは世界の終わりではありません。私は誰かが別の提案をするかもしれないことを望んでいました。
誰かが何か提案があったり、説明が必要な場合は、必要に応じて強制的にそれを取得することを躊躇しないでください。;)