4

単一のページを使用する ASP.NET Web アプリがありますが、ワークフロー全体で一部のコントロールを非表示にし、他のコントロールを表示します。これは非常に単純なアプリケーションであるため、使用するページは 1 つだけです。

ユーザーがキャンセル ボタンをクリックしたとき、またはワークフローを完了したときにページをリロードする方法がわかりません。お申し込みの流れを詳しくご紹介します...

  • このページは、従業員名のドロップダウン リスト、選択した従業員のピン番号を入力するピンパッド、およびログイン ボタンを含む LoginTable コントロールをロードして表示します。
  • ログイン ボタンをクリックすると、ピンが検証された場所でポストバックが発生し、有効な場合は、ページ コンテンツのほとんど (ヘッダーを除く) を保持するテーブル コントロールが非表示になり、現在の状態に応じて新しいテーブル コントロールが表示されます。ステータス (出勤または退勤)。
  • この時点で、ClockInTable または ClockOutTable コントロールが表示され、LoginTable コントロールは表示されません。ユーザーは、[キャンセル] ボタンまたは [出勤/退出] ボタンをクリックできます (勤務地や仕事など、出勤する場合に選択するその他の項目がいくつかあります)。

私が望むのは、ユーザーがキャンセル、クロックイン、またはクロックアウトのいずれかのボタンをクリックすると (ポストバックで他の処理が行われた後)、ページが新しいセッションで再度読み込まれ、ユーザーが持っているかのようにメインの LoginTable が再び表示されることです。ブラウザを再起動し、初めてページを開きました。

Session.Abandon() を使用してみましたが、Global.asax Session_End イベントで Response.Redirect("Login.aspx"); を実行します。

ただし、これは機能しません。ページの同じビューを再読み込みするだけです。

最初のアクセス (つまり、ポストバックではない) のようにページをリロードする (ページを更新しない) 方法を教えてください。

また、私は ASP.NET を初めて使用するので、セッションのしくみを誤解している場合はお知らせください。

4

3 に答える 3

1

あなたが説明した方法でそれができるかどうかは正確にはわかりません。ただし、できることは、フラグをセッション変数として持つことです。それを言うと呼びますIsFirstComer。あなたのシステムのワークフローがどうなるかはわかりませんがtrue、新しいユーザーがログインするたびに (まだワークフローを開始していない)、またはワークフローを終了するたびに (最初からやり直す必要がある) にリセットすることができます。 、ただし、ユーザーがワークフローを開始するとすぐに、に設定しますfalse。コントロールの動作は、 の値によって制御できますIsFirstComer

于 2012-10-25T17:38:04.393 に答える
1

Response.Redirect() でユーザーを同じページにリダイレクトしようとしましたか? これにより、ページが新しいページであるかのように読み込まれます。ただし、セッション データは失われません。

于 2012-10-25T17:32:33.667 に答える
0

メソッドに次のように書きましたかif(!this.IsPostback)。その後、" " を再Page_Load試行してください。Response.Redirect(page.aspx)

于 2012-10-29T05:47:27.903 に答える