0

c#(asp.net)を使用する

プログラムでいくつかのドロップダウンリスト(乱数)を作成しています。ユーザーが各リストから特定の値を選択し、ユーザーが選択した値を保存する必要があります。

ボタンクリックイベントを使用してデータをセッション状態に保存しようとすると、ドロップダウンリストオブジェクトが作成されていないと表示されます。(明らかに、!IsPostBackの下のページロードイベントでドロップダウンリストを作成しています。)

IsPostBackの下のページロードイベントでデータをセッション状態に保存しようとすると、各リストから最初の値のみを取得します。(明らかに、ポストバック後にページが再作成されると、ドロップダウンリストが再作成され、ユーザーが入力したデータは失われます)。

ボタンがクリックされたときにドロップダウンリストからユーザーが選択した値を保存するにはどうすればよいですか?私はこれをコードビハインドファイルで行っています。

4

3 に答える 3

0

すべてのポストバックですべてのドロップダウンを再作成する必要があります。

于 2009-07-07T21:14:22.273 に答える
0

個人的に(MVCに切り替える機能なしで)ポストバックを完全に取り除き、標準のHTTPPOSTリクエストから直接値を読み取ることを検討します。

ポストバックを使用した動的制御の実装は、多くの場合、かなり複雑になり、追跡が困難になります。

于 2009-07-07T21:25:50.907 に答える
0

John Saundersが言ったように、すべてのポストバックですべてのDropDownListコントロールを再作成する必要があります。さらに、状態を復元する前にそれらを作成する必要があります。これは、ページ読み込みイベントの「under!IsPostBack」がすでに遅すぎることを意味します。ページ初期化に移動します。

于 2009-07-07T21:48:58.740 に答える