ユーザーが入力する ASP.NET Web フォーム (C#) があり、ポストバックを引き起こすいくつかのドロップダウン リストと、ポストバックを引き起こすいくつかの検証があります。また、いくつかの異なる更新パネルを使用しています。1 つのパネルはユーザー入力用に表示され、もう 1 つのパネルは、ユーザーが送信をクリックしてデータがデータベースに追加された後に表示されます。確認パネル (最後のパネル) には、確認番号も表示されます。
最後のパネルが表示された後、ユーザーが F5 キーを押すか更新したときにページが再読み込みされないようにしたいと考えています。その理由は、ユーザーが誤って更新または F5 をクリックして、確認番号とメッセージを失ってほしくないからです。ユーザーが F5 キーを押すと、ブラウザーはそれを新しいページの読み込みが必要であると解釈し、その時点でセッションはクリアされます (以下のコードに示すように)。
私が最初に考えたのは、メッセージと確認番号を再印刷し、それを保持するパネルが常に見えるようにすることでした。以下のコードのelseセクションでこれを行うつもりでしたが、複数のポストバックがあり、それらはすべてページの読み込みをトリガーするため、ポストバックがフォームの結果であるかどうかを判断する方法がない限り、機能しません要素または f5 キー。
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
Session.Clear();
GetList();
}
}
catch (Exception ex)
{
//Do something();
}
}
Javascriptの使用を推奨するいくつかの異なる投稿を見てきましたが、可能であれば、誰かがJavaScriptをオフにしている可能性が低いため、それを避けています.
プログラムの流れは次のとおりです。ユーザーはフォームを開き、contactpanel のフィールドに入力し、送信をクリックします。フィールドは ASP.NET サーバーの検証コントロールを使用して検証され、すべて問題がなければ、データがデータベースに送信され、確認番号が返されます。最後に、contactpanel は visibility=false に設定され、confirmationpanel は visibility=true に設定されます。
お役に立てれば。提案をお待ちしております。
ありがとう、