私が問題を抱えていることを示す簡単な例を作成しました。ページにasp.netチェックボックスを配置し、同じページにasp.netテキストボックスを配置します。コード ビハインド (vb.net を使用) に、チェック ボックスがオンの場合はテキスト ボックスに何かを表示し、チェック ボックスがオフの場合は空のテキスト ボックスを表示するコードを配置します。シンプルですね。チェックボックスをオン/オフし、テキストボックスにコンテンツがある/コンテンツがない状態で、何度か切り替えます。すべて正常に動作します。
ここで、ブラウザの戻るボタンを数回クリックします。戻るボタンをクリックするたびに表示される結果は反対です - チェックボックスはチェックされていますが、テキストボックスには何もありません。チェックボックスがオフで、テキストボックスにテキストがあります。vb コード (ページの読み込み、checkedchanged) をどこに配置しても同じ結果になります。
ページがキャッシュに保存されるタイミングと関係があると思います。チェックマークが「クリック」イベントを発生させている間、ページのようなものがキャッシュに保存されていますが、テキストボックスを埋めるコードはまだ発生していません。それからまた、私は完全に的を外している可能性があり、私が間違っているのは本当に単純なことです。
アイデア/考え/助けをいただければ幸いです。
サンプルコード:
ASPX:
<asp:CheckBox id="ChkBox1" runat="server" AutoPostBack="True" text="Sample" /><br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
VB:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If ChkBox1.Checked = True Then
TextBox1.Text = "Checked"
Else
TextBox1.Text = ""
End If
End Sub