2

ユーザーがページのフォームで行った選択に応じて、ユーザーが回答するためのさまざまな質問のセットを表示するページを作成する必要があります。

したがって、ユーザーがページ編集のフォームから理由 A を選択すると、ページ edit_confirmation に質問 1 と 2 を表示する必要があります。ただし、理由 B を選択した場合は、質問 3 と 4 を表示する必要があります。

クエリ文字列から理由コードを取得し、switch ステートメントを設定していますが、さまざまなコントロールを出力する方法がどこにも見つかりません。質問 1 と 2 が表示される場合は、一方がテキスト ボックスで、もう一方がチェックボックスである可能性がありますが、質問 3 と 4 が表示される場合は、一方がドロップダウン リストとチェックボックスである必要があります。

編集:以下の提案のいくつかを試して、答えをマークし、それに応じて賛成票を投じるために戻ってきます。迅速な対応ありがとうございました。

EDIT EDIT:rlb.usaとAndrewVosの両方の回答が同様にうまくいきました。それを行うより「適切な」方法のように思えたので、私はAndrew'sに行きました.

4

6 に答える 6

4

MultiView コントロールを見てください。ビューを追加し、要件に応じてどのビューを表示するかを指定できます。

于 2010-04-23T15:14:53.477 に答える
4

異なるコントロールを出力しますか? ああ、それはとても痛そうです。あなたが探している用語は、動的コントロール (コード内で作成されたコントロール) だと思います。私はいつもこれに価値があるよりも多くの問題を抱えてきました。

これを行う最も一般的な方法は、フォーム上にすべてのコントロールを設定することです。各「質問」または関連する質問セットをすべて に含めますASP:Panel。次に、コード内でロジックを適用し、必要に応じて (プロパティASP:Panelを設定して) を非表示/表示するだけです。該当する場合、または特定の回答が変更されたときに、Visibleこのロジックを実行できます。Page_Load

于 2010-04-23T15:13:29.210 に答える
1

PlaceHolder コントロールを使用して、サーバー側で関連するコントロールを追加するか、style.display を none に設定してすべてのコントロールをレンダリングし、クライアント側の JavaScript を使用して関連するコントロールを「ブロック」に設定することができます。

于 2010-04-23T15:15:09.003 に答える
0

1 つの方法は、コントロールを静的に追加することです。ユーザーの選択に基づいて、コントロールを非表示または再表示します。このアプローチは最も簡単に実装できますが、見苦しいものです。

他のアプローチは、コントロールを動的に作成して追加することです。これらのことはかなり厄介になる可能性があるため、ビューステートの管理について考える必要があります。

于 2010-04-23T15:15:35.097 に答える
0

page_load イベントでコントロールの visible プロパティを設定するだけです。したがって、switch ステートメントでは、ユーザーに表示するコントロールのみを表示します。

于 2010-04-23T15:16:44.430 に答える
0

ページ編集で選択した理由に基づいて、別のページに送信しないのはなぜですか?

于 2010-04-23T15:14:55.463 に答える