2009-05-07 2 views
0

私は、FinishButtonClickイベントハンドラのウィザードの最初のステップに戻るwiz.MoveTo(wiz.WizardSteps[0])というループバックを持つASP.NETウィザードコントロールを持っています。ASP.Netウィザード - Webコントロールのコンテンツをクリアする方法

また、ステップ内のすべてのコントロールのすべてのコンテンツを消去しますか?

問題は、ビューステートのために、ウィザードのステップのコントロールが前のサブミットの値 を覚えていることです。

ステップ間の状態(前後)を覚えておく必要があるため、コントロールではenableviewstate = falseを使用できません。

FinishButtonClickイベントが発生したときにのみ、すべてのコントロールのviewstateをクリアする最も簡単な方法は何ですか?

ありがとうございます!

+0

残念ながら、ViewStateは、IPostBackDataHandlerインターフェイスから継承したテキストボックス、ドロップダウン、チェックボックスなどのコントロールの変更された値を保存する責任を負いません。 LoadPostBackDataイベントが発生し、これらのコントロールの値がHTTP POSTヘッダーからロードされます。 – Konrad

答えて

2

消去してはいけないことはありますか?そうでない場合、最も簡単な解決策は、クリックイベントハンドラにリダイレクトを入れて、すべてが再初期化されるようにすることです。

+0

Tomさん、ちょうど同じソリューションにつまずいてしまいました...問題を少し良く理解した後。 ;) – Konrad

1

解決済み。また、プロセス内のViewStateの範囲について新しいことを学びました...

ViewStateは、TextBoxes、DropDowns、CheckBoxesなどのコントロールの変更値を保存する責任を負いません。これらのコントロールは、IPostBackDataHandlerインターフェイスから継承します。 LoadPostBackDataイベントは、ページライフサイクルで発生します。コントロールのVALUESは、HTTP POSTヘッダー...フォームからロードされます。クライアントによって再送信されます。

HTTP POSTヘッダーを消去してコントロール値?

新しいHTTP POSTヘッダーで新しい要求の結果は...だから私は単にFinishButtonClickイベントハンドラに次の操作を行います。

HttpContext.Current.Response.Redirect(Page.Request.Url.ToString()); 

これは、それは、ウィザードのステップ1に行くという付加的な利点を持っているので、私は、またしないでください... wiz.MoveTo(wiz.WizardSteps[0])

これは、同じ問題を抱えている人に役立ちます。

関連する問題