2012-03-26 41 views
4

残念ですが、これは重複していると分かります。私は私の問題にちょうどよく似た何かを見つけることができません。ASP.NETのポストバックと戻るボタン

私はフォーム上にasp:ラベルを持っています。送信ボタンのpostabackでは、私はサーバー側の検証を行います。失敗した場合は、ラベルをテキスト値に設定します。

有効な情報を入力してもう一度[送信]をクリックすると、送信クリックの一部としてラベルが空に設定され、ポストバックが実行され、新しいページが表示されます。

[戻る]ボタンをクリックすると、フォームに正しい情報とエラーラベルが表示されます。

もう一度submitをクリックすると、ラベルのテキストプロパティが空であることが示されますが、テキストは画面にはっきりと表示されます。

アクションを実行する前にラベルを空に設定しているので、ラベルが空(実際には表示されません)になると思います。

TextプロパティとVisibleプロパティの両方で試しましたが、同じ結果が得られました。

準備完了? GO ...

+0

私は長いコードの書き込みを避けるためにそこにあった検証コード/設計を単純に利用しています。今私はその目的を吹き飛ばした。私はcustomvalidatorsとクライアント側のスクリプトを使用するように設計を変更することができます... ????? – Roger

+0

投稿コード... – citronas

+0

投稿urpxコード? – Pankaj

答えて

0

あなたが試してみました:

protected void Page_Load(object sender, EventArgs e) 
{ 
    lblMessage.Visible = false; 
} 

をあなたのページはあなたのメッセージが見えなくなりますロードされるたびに。したがって、サーバサイドの検証を行うときに、ラベルのテキストを設定し、Visibility = trueを設定することができます。

+0

はい。助けにならない。出力は既にキャッシュされているため、送信ボタンのコントロールの変更はキャッシュにプッシュされません。戻るボタンは単に最後のキャッシュの状態を示します。 – Roger

+0

送信ボタンをクリックしたときにキャッシュをクリアできるかどうかは疑問です。私はこれがうまくいくかどうか、ちょっとした提案だとは言えません。あなたの質問に投票しました。 – Seany84

0

「戻るボタンをクリックすると、正しい情報がフォームに表示され、エラーラベルが表示されます。」 :これは問題ありません。あなたが投稿したときのページの状態を表示します。

あなたのメッセージラベルがその目に見えるまたはテキストを保持したくない場合は、マークアップは次のようになります。

<asp:label id='myMsgLbl' runat='server' enableviewstate='false' visible='false/>' 

--edit私の知る限りでは

、戻るボタンと行動期待通りです。

たぶん、あなたは、バックボタンの無効化を許可するソリューションを探してフォームの

または無効キャッシング(しかし、私はこのソリューションは、あなたの最初の問題よりも悪くなります推測する)必要があります

private void Page_Load(object sender, System.EventArgs e) 
    { 
     Response.CacheControl = "no-cache"; 
     Response.AddHeader("Pragma", "no-cache"); 
     Response.Expires = -1; 
     Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); 
+0

これは私の問題を解決しませんでした。 – Roger

+0

また、これを設定してみてください:Response.Cache.SetNoStore(); – Sergey

関連する問題